vi 的使用心笔记
在用户的要目录下可以在.vimrc设置好自己平时所使用的环境
如每次打开文件都显示行号,查询的时候忽略大小写,则如下
vi .vimrc
set nu
set ic
:noh 不显示高亮(查询的时候会显示颜色,但下此命令后就不会高亮显示所查询到的内容)
:set ic 忽略大小写
:set noic 不忽略大小写
:set nu 显示行号
:set nonu 不显示行号
:syntax on 语法高亮显示
:syntax off 语法不高亮显示
1,删除空白行
:g/^$/d
或 :v/./d
1. global命令形式:h :g:h 12.4:[range]global/{pattern}/{command}global命令在[range]指定的文本范围内(缺省为整个文件)查找{pattern},然后对匹配到的行执行命令{command},如果希望对没匹配上的行执行命令,则使用global!或vglobal命令。先来看Vim用户手册里的一个经典例子。【例1】倒序文件行(即unix下的tac命令):g/^/m 0这条命令用行首标记/^/匹配文件的所有行(这是查找的一个常用技巧,如果用/./则是匹配非空行,不满足本例要求),然后用move命令依次将每行移到第一行(第0行的下一行),从而实现了倒序功能。global命令实际上是分成两步执行:首先扫描[range]指定范围内的所有行,给匹配{pattern}的行打上标记;然后依次对打有标记的行执行{command}命令,如果被标记的行在对之前匹配行的命令操作中被删除、移动或合并,则其标记自动消失,而不对该行执行{command}命令。标记的概念很重要,以例说明。
2,删除1至5行的#号
:1,5s/#//g
如果只是1到5行行首#号
:1,5s/^#//
如果每一个都要按确认y的话
:1,5s/^#//c
3,删除2至5行
:2,5d
4,删除2至未行
:2,$d
5,删除行首为#号的行(%代表所有行)
:%s/^#.*$// (还存在空白行)
:g/^#/d (不存在空白行)
6,删除鼠标所在位置至本行的未尾并插入模式
shift+c
如不想在插入模式则可 d+$
7,在2至5行增加#号作批注
:2,5s/^/#/
8,删除鼠标所在行到最后一行(包括鼠标所在行)
:,$d