参考vimtutor。不要强行记忆,在实操中学习。
第一讲:
1.尽量让双手靠的”更近些“,使用h/j/k/l代替←/↓/↑/→箭头,当然为了工作效率习惯哪个就用哪个。操作完毕后按ESC确保回到的是normal mode。实测在空行时无法左右移动只能上下。
2.vim xxx 表示vim操作xxx文件,normal模式下按:wq表示保存并退出,:q表示不保存退出,两者后面加上!表示强制退出的意思。
3.normal模式下,将光标移动到需要删除的位置上按x即可删除对应字符。
4.正常模式下按i/a等键进入插入模式,输入需要的字符插入即可,ESC回到正常模式或者取消一个不希望的操作。
第二讲:d(delete)
dw删除整个单词,光标移到单词头,删除至单词末尾,包括空格;d$删除从光标处到改行末尾的字符;de与dw类似,但是不删除空格。 [number] d object 或者 d [number] object表示删除多个对象,比如2dw表示删除光标后的两个单词。dd表示删除一整行(光标在该行任意位置均可),2dd表示删除两行。对you are handsome的空格按x删除后得到youarehandsome,此时再dw的话会让其当做一个单词删除。
数字可组合使用,如2b表示往后(back)退两个单词,3e表示光标移动到第三个单词后,0表示回到句首,$表示去到行末。w跳到下一单词开头,e跳到下一单词结尾。
u表示撤销之前的操作,ctrl+r表示撤销之前的撤销操作,U表示恢复一整行的原始状态,再按一次恢复到当前状态。
第三讲:c(change)
输入 dd 将某行删除,这样会将该行保存到vim的缓冲区中,再将光标移动到需要置入的行上方,按p会将该行置入到光标的下方行。正常模式下按r+字符会将光标处的字符替换为你输入的字符,按R+字符可以一直替换直到输入esc为止。cw类似,但它不仅是完成了替换,也进入了插入模式,替换完成后esc回到正常再移光标至下一处错误继续替换。
[number] c object 或者 c [number] object 与删除d一致,cw更改单词,c$一直更改到句末。
第四讲:
CTRL-g 显示当前编辑文件中当前光标所在行位置以及文件状态信息,记住当前行号。shift+g光标跳转到最后一行,输入行号+shift+g可以跳转到该行位置,输入行号时是不会显示在屏幕上的。
查找:/+字符串,如/errroor,从头开始搜索该字符串,继续搜索按n,反向搜索shift+n,若要从底部往上搜索?+字符串即可。搜索完一遍后会继续重新开始搜索。
%用于查找匹配的)、]、}等括号,光标移动到需要查找的括号上按下%可以定位到与之匹配的反括号,再按一次回到原地。
修改错误,将光标移到待修改的某行,输入:s/old/new可将该行的第一个old替换成new,:s/old/new/g会将整行的old替换成new,:%s/old/new则会将整个文档的old替换成new,:#,#s/old/new/g会将两个#行号之间的old替换成new。
gg回到文档开头,G回到文档末尾,36G回到第36行,同36 shift+g. ctrl+o回到上次光标停留的位置,ctrl+i回到下次光标停留的位置。*
和 #
: 匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词