我个人对Vim
的强大其实并不是太熟悉,只是勉强会用一些基本的操作(甚至都算不上基本)。但是Mac上最方便的编辑器大概就是Vim
了,所以还是决定记录一下常用的Vim
命令,多用总会慢慢熟练的。
退出命令
:wq
保存并退出ZZ
保存并退出:q!
强制退出并忽略所有更改:e!
放弃所有修改,并打开原来文件。
插入命令
i
在当前位置生前插入I
在当前行首插入a
在当前位置后插入A
在当前行尾插入o
在当前行之后插入一行O
在当前行之前插入一行
光标移动
h
j
k
l
:左 下 上 右w
:光标以单词向后移动nw
:光标向前后动n个单词 光标到单词的第一个字母上b
:与w
相反,以单词向前移动$
:移动光标到行尾n$
:移动到第n行的行尾0
(数字):移动光标到行首%
:移动到与制匹配的括号上去(),{},[],<>等nG
:移动到第n行上G
:移动到最后一行gg
:移动到文件开头
查找命令
/word
查找word,按n
健查找下一个,按N
健查找前一个。?word
查找word,反向查找,按n
健查找下一个,按N
健查找前一个。- 查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按
*
或#
键即可以该单词进行搜索,相当于/
搜索。而#
命令相当于?
搜索。
替换命令
ra
将当前字符替换为a,当期字符即光标所在字符。:s/old/new/
用old替换new,替换当前行的第一个匹配:s/old/new/g
用old替换new,替换当前行的所有匹配:%s/old/new/
用old替换new,替换所有行的第一个匹配:%s/old/new/g
用old替换new,替换整个文件的所有匹配:10,20 s/^/ /g
在第10行知第20行每行前面加四个空格,用于缩进。ddp
交换光标所在行和其下紧邻的一行。
撤消和重做
u
撤销(Undo)U
撤销对整行的操作Ctrl + r
重做(Redo),即撤销的撤销。
删除命令
dl
删除当前字符,dl
=x
dh
删除前一个字符dd
删除当前行dj
删除上一行dk
删除下一行10d
删除当前行开始的10行。D
删除当前字符至行尾。D
=d$
d$
删除当前字符之后的所有字符(本行)kdgg
删除当前行之前所有行(不包括当前行)jdG
(jd shift + g) 删除当前行之后所有行(不包括当前行):1,10d
删除1-10行:11,$d
删除11行及以后所有的行:1,$d
删除所有行
复制和粘贴
yy
拷贝当前行nyy
拷贝当前后开始的n行,比如2yy拷贝当前行及其下一行。p
在当前光标后粘贴,如果之前使用了yy命令来复制一行,那么就在当前行的下一行粘贴。shift+p
在当前行前粘贴:1,10 co 20
将1-10行插入到第20行之后。:1,$ co $
将整个文件复制一份并添加到文件尾部。- 正常模式下按
v
(逐字)或V
(逐行)进入可视模式,然后用jklh
命令移动即可选择某些行或字符,再按y
即可复制 ddp
交换当前行和其下一行xp
交换当前字符和其后一个字符
剪切命令
- 正常模式下按
v
(逐字)或V
(逐行)进入可视模式,然后用jklh
命令移动即可选择某些行或字符,再按d即可剪切 ndd
剪切当前行之后的n行。利用p命令可以对剪切的内容进行粘贴:1,10d
将1-10行剪切。利用p命令可将剪切后的内容进行粘贴。:1, 10 m 20
将第1-10行移动到第20行之后。