Vim是一款功能丰富而强大的文本编辑器,其代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中得到非常广泛的使用。Vim 能够大大提高程序员的工作效率。对于Vim高手来说,Vim能以与思考同步的速度编辑文本。同时,学习和熟练使用Vim又有一定的难度。
常用命令列表
1:移动
h 左移一列
l 右移一列
j 下移一行
k 上移一行
w 正向移动到下一个单词的开头
b 反向移动到当前单词/下一单词的结尾
2:重复上次修改
.命令会“重复上次修改”,要理解.命令的强大,我们需要意识到这一点:”上次修改”可以指很多东西, 一次修改的单位可以是字符,整行,甚至是整个文件。
3:缩进命令
>G命令会增加从当前行到文档末尾处的缩进层级
4:删除命令
x:删除当前光标所在字符
dw:删除一个单词/光标之后的单词剩余部分
d$:删除光标之后的该行部分
d^:删除光标之前的该行部分
dd:删除整行
5:复制粘贴
ddp是对文本行的剪切与粘贴操作,实际上是调换了两行的顺序
yyp是针对行的复制与粘贴操作
6:查找
在普通模式下,按下 / 或者?键会调出 Vim 的查找提示符,/是正向扫描,?是反向扫描,可在它的后面输入要查找的模式或者原义文本。另外,只有当我们按下CTRL键时,Vim才会执行查找命令,而如果换用ESC键的话,查找提示符会消失,我们将重回普通模式。
n 命令用于跳转到下一处匹配,而 N命令则用于跳转到上一处匹配。通过 n与 N这两条命令,我们可以方便地在各个匹配之间往来穿梭
:noh 可以禁用查找高亮功能
7:替换
:substitute 命令很复杂,除了要提供查找的模式以及替换字符串外,还要指定执行的范围。另外,作为可选项,我们还可以通过标志位来调整该命令的行为。
substitute命令允许我们先查找一段文本,再用另一段文本将其替换掉。命令的语法如下所示:
:[range]s[ubstitute]/{pattern}/{string}/[flag]一条完整的substitute 命令由许多部分组成。其中,[range] 的规则对于每一条Ex命令都适用,substitute命令也不例外。
range讲解:
当前行::s/foo/bar/g
全文::%s/foo/bar/g
5-10行:5,10s/foo/bar/g
flag讲解
标志位 g使得 subsititute 命令可在全局范围内执行,即可以修改一行内的所有匹配,而不仅仅是第一处匹配。
标志位c让我们有机会可以确认或拒绝每一处修改。
标志位 n 会抑制正常的替换行为,即让 Vim 不执行替换操作,而只是报告本次substitute 命令匹配的个数。
8:多文件
:ls命令会列出所有被载入到内存中的缓冲区的列表。
:bprev 和 :bnext 在列表中反向或正向移动,每次移动一项;
:bfirst 和 :blast 则分别跳到列表的开头和结尾
:buffer N命令直接凭编号跳转到一个缓冲区
:edit 命令允许通过文件的绝对路径或相对路径来打开文件
:find 命令允许我们通过文件名打开一个文件,但无需输入该文件的完整路径。要想利用此功能,首先要配置 ‘path’ 选项。
:set path+=app/ **
** 通配符会匹配 app/ 目录下的所有子目录。