Vim的使用

vim基本操作

移动光标

下面操作均需处在一般模式(默认的模式)下:

  • h``j``k``l分别为“左”“下”“上”“右”
  • 翻半页:Ctrl + d(d for down),Ctrl + u(u for up)。
  • 翻一页:Ctrl + f(f for front),Ctrl + b(b for back)。
  • gg表示移到到首行。
  • G表示移动到尾行。
  • nG(n指的是数字)表示移动到第n行;一般用于根据程序错误提示信息进行 bug fix。
  • 0表示移到光标所在行的行首; $表示移动到光标所在行的行尾。

复制剪切粘贴

  • yy复制光标所在行。
  • dd剪切光标所在行,如果光剪切不粘贴,那就相当于删除。
  • p将复制/剪切的内容粘贴至光标后,因为光标是在具体字符的位置上,所以实际是在该字符的后面;整行的复制粘贴在游标的下一行。

v模式相关

  • v切换到“高亮选择模式”,移动光标进行选择。
  • v模式下,按y(y for yank)复制高亮选择的内容。
  • v模式下,按d剪切高亮选择的内容,如果光剪切不粘贴,那就相当于删除。

撤销、重做

以下仅讨论vim下的操作(vi的操作稍有不同):

  • u进行撤销,可多次撤销。
  • Ctrl + r(r for redo)进行重做,可多次重做。

进入编辑模式

下面所有操作均需在一般模式下执行:

  • i,在当前光标所在字符前插入。
  • o,在当前光标所在行的下一行插入新的一行。
  • O,在当前光标所在行的上一行插入新的一行。

查找和替换字符串

下面所有操作均需在一般模式下执行:

  • /word,向下查找一个字符串word,查找后按n看下一匹配结果,按N看上一匹配结果。
  • ?word,向上查找一个字符串word,查找后按n看下一匹配结果,按N看上一匹配结果。
  • :n1,n2s/word1/word2/g,在n1和n2行之间查找word1并替换为word2,其中n1、n2皆可取数字,另外n2可取$表示最后一行。

行号相关

  • :set nu表示显示行号。
  • :set nonu表示不显示行号。

保存及退出

  • :w,保存文本。
  • :q,退出vim。
  • :w!,强制保存,在root用户下,即使文本只读也可以完成保存。
  • :q!,强制退出,所有改动不生效。
  • :wq,保存并退出。