Vim常用操作

152 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

命令模式进入输入模式

i、a、o、 s、 I、 A、 O、 S

  • i:在光标所在字符前开始插入
  • a:在光标所在字符后开始插入
  • o:在光标所在行的下面另起一新行插入
  • s:删除光标所在的字符并开始插入

  • I:在光标所在行的行首开始插入,如果行首有空格则在空格之后插入
  • A:在光标所在你行的行尾开始插入
  • O:在光标所在行的上面另起一行开始插入
  • S:删除光标所在行并开始插入

退出

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

撤回

  • u:撤回
  • ctrl+r恢复上一步被撤销的操作

行号

  • 显示行号:set nu
  • 取消行号:set nonu

控制方向

  • h:向前一个字符
  • l:向后一个字符
  • j:向下一个行
  • k:向上一个行
  • e:向后移动一个单词
  • b:向前移动一个单词

  • gg:跳到文件首
  • G:跳到文件尾
  • 行数+gg:跳到某行,如123gg,跳到123行
  • 移动到行首:home0shift+6(^)
  • 移动到行尾:endshift+4($),其中n$表示n行行尾,1表示当前,2表示下一行行尾

复制粘贴

  • yy:复制一行
  • 数字+yy:复制n行,如5yy,复制5行
  • p:粘贴
  • dd:删除一行
  • 数字+dd:删除n行

搜索

  • /xxxxxx:搜索xxxxx内容

替换

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

Vim分屏

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

拼写检查

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

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