Vim模式

  • Normal 模式:进入Vim后的一般模式。
  • Insert 模式:按下i键后进入插入模式,可以修改文档。
  • Visual 模式:按下v键后进入选择模式,可以选择文档内容。

    Vim打开和切换文件

  1. 终端vim file1 file2 …可以打开多个文件。
  2. :ls显示打开的文件,可以使用:bn在文件间切换( n也可以换成:ls里给出的文件序号 )。
  3. 打开vim后,可以用:e fileName来打开文件或者新建文件。
  4. 在终端vim -o file1 file2 …可以打开多个文件(横向分隔屏幕)。
  5. 终端vim -O file1 file2 …可以打开多个文件(纵向分隔屏幕)。
  6. Ctrl+w+w在窗口间切换光标,第二个w也可以用h、j、k、l来光标代表移动方向。

    Vim退出

  7. :q:退出。

  8. :q!:强制退出,放弃所有修改。
  9. :wq:保存修改并退出。

    常用快捷键

  10. 方向键待整理 - 图1也可以用h、j、k、l。

  11. 0到行首,$到行尾。
  12. gg到文档首行,G到文档结尾。
  13. Ctrl+f下一页,Ctrl+b上一页。
  14. Ctrl+u往上半页,Ctrl+d往下半页。
  15. w或e光标往后跳一个单词,b光标往前跳一个单词。
  16. :98跳转到第98行。
  17. q:显示命令行历史记录窗口。
  18. !bash_Command不退出vim暂时返回终端界面执行该命令。
  19. H将光标移动到屏幕首行,M将光标移动到屏幕中间行,L将光标移动到屏幕最后一行。

    Vim分屏

  20. :sp或者:split横向分隔屏幕,后面可以加文件名。

  21. :vs或者:vsplit纵向分隔屏幕,后面可以加文件名。
  22. :only只保留光标所在分屏,关闭其他分屏。
  23. nerdtree插件中,选中文件后按s纵向分隔屏幕,按i水平分隔屏幕。

    复制粘贴

  • Visual模式下选择文档内容后按y键,复制被选择内容。
  • 按p键粘贴,注意粘贴从紧跟光标后的那个字符之后才开始。

abc 待整理 - 图2 d “COPIED_TEXT” efghk… ( 待整理 - 图3 是光标)

  • 选择内容后按d删除或者剪贴。
  • yy复制当前行,dd删除(剪贴)当前行。

    查找和替换

    查找

  1. Normal模式下,按/进入查找模式,输入/word后回车,高亮显示所有文档word,按n跳到下一个word,按N跳到上一个。
  2. 若输入/word\c代表大小写不敏感查找,\C代表大小写敏感。
  3. 输入:noh取消高亮。
  4. 按下*高亮查找光标位置处的单词,但若查找word,helloword中的word不会被高亮。
  5. 按下g*高亮查找光标位置处的单词,若查找word,helloword中的word也会被高亮。
  6. Normal模式下按q+/显示查找历史记录窗口。

    替换

  7. :s/word/excel:替换当前行所有word为excel。

  8. :s/word/excel/g:替换当前行第一个word为excel,/g代表只替换每行第一个。
  9. :%s/word/excel:替换全文所有word为excel。
  10. :%s/word/excel/gc:其中/c代表需要确认,并提示:replace with excel (y/n/a/q/l/^E/^Y)?,其中a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出,^E与^Y是光标移动快捷键。
  11. :2,11s/word/excel:替换第2到11行的word为excel。
  12. :.,$s/word/excel:替换当前行到最后一行的word为excel,.代表当前行,$代表最后一行。
  13. :.,+2s/word/excel:替换当前行与接下来2行的word为excel。
  14. Visual模式下选择后按:, Vim自动补全为:’<,’>,然后手动补全:’<,’>s/word/excel,将选择区域的word替换为excel。
  15. :s/word/excel/i:/i代表大小不敏感查找,等同于:s/word\c/excel,而/I代表大小写敏感查找。

    代码折叠

    代码折叠是Vim的高级功能,即便没掌握也不影响Vim的正常使用。
  • set foldenable: 打开代码折叠功能,可以写在根目录下的.vimrc文件里。
  • set foldmethod=syntax: 设置折叠方式(foldmethod可缩写为fdm),常用的折叠方式有:

syntax: 按 C \ C++ 语法折叠 {};
indent: 按缩进折叠,适用于 Python 。

  • set foldlevelstart=99: 打开文件时不自动折叠代码。
  • zc & zo: 在Normal模式下将光标移动到代码的可折叠位置,按zc折叠代码(close),zo打开折叠的代码(open)。

小技巧 : 将nnoremap @=((foldclosed(line(‘.’)) < 0) ? ‘zc’ : ‘zo’)写入.vimrc文件,可将zc和zo映射为空格键。

拼写检查

对于英文单词的拼写,Vim 可以自动检查拼写 (Spell Checking)。

  1. set spell: 打开拼写检查,可以写在根目录下的 .vimrc 文件里,不过更推荐在需要使用时在 Vim 中手动打开 :set spell。
  2. .vimrc 文件里写入 inoremap u[s1z=]a<c-g>u 来将 Ctrl+l 映射为快捷键,其中 [s 代表光标跳到上一个拼写错误处, 1z= 选择第一个推荐的正确拼写,]a 光标跳回原来位置。设置完就可以通过 Ctrl+l 快速改正单词。