我个人对Vim的强大其实并不是太熟悉,只是勉强会用一些基本的操作(甚至都算不上基本)。但是Mac上最方便的编辑器大概就是Vim了,所以还是决定记录一下常用的Vim命令,多用总会慢慢熟练的。
退出命令
:wq保存并退出ZZ保存并退出:q!强制退出并忽略所有更改:e!放弃所有修改,并打开原来文件。
插入命令
i在当前位置生前插入I在当前行首插入a在当前位置后插入A在当前行尾插入o在当前行之后插入一行O在当前行之前插入一行
光标移动
hjkl:左 下 上 右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=xdh删除前一个字符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行之后。