Wetts's blog

Stay Hungry, Stay Foolish.

0%

vi常用命令

移动

  • k:上

  • j:下

  • h:左

  • l:右

  • 0:将游标放在一行的开始

  • $:将游标放在一行的结尾

  • w:将游标移动到下一个单词

  • W:和w功能相同,只是不计算标点符号。

  • b:将游标移动到前一个单词

  • B:和b功能相同,只是不计算标点符号。

  • (:将游标放在当前句子的开始处

  • ):酱油表放在下一句的开始处

  • Ctrl + F:向前滚动一屏

  • Ctrl + B:向后滚动一屏

  • Ctrl + G:确定游标的当前位置,会将游标的行号和字符位置显示在屏幕下方。

  • G:将游标放在文件的最后一行上

  • xG:表示游标所要移动到的行号

  • :x:表示将游标放在x所制定的行上

  • Shift + g 或者 :$:跳到文件最后一行

  • gg 或者 :0:跳到文件第一行

搜索

  • /input 搜索从光标所在处之后的input。
  • ?input 搜索从光标所在处之前的input。

如果正在搜索的字符存在多个实例,那么用户可以在每个实例的后面输入一个小写n,从而沿同一个方向搜索(向前或者向后),或者输入一个大写N,以便沿着当前的搜索的相反方向进行搜索。

退出

  • q退出
  • q!强制退出
  • qw退出并保存

编辑

撤销

  • u:撤销操作
  • ctrl + r:恢复撤销

插入

  • i:在当前的游标位置之前插入文本
  • I:在当前行的开始处插入文本
  • a:在当前的游标位置之后插入文本
  • A:在当前行的结尾处插入文本
  • o:在游标位置的下面为文本条目创建一个新行
  • O:在游标位置的上面为文本条目创建一个新行

删除

  • x:删除游标所在位置的字符。如果命令前有数字n,那么将删除从游标所在位置开始的后n个字符。
  • X:删除游标位置前面的字符。如果命令前有数字n,那么将删除从游标所在位置开始的前n个字符。
  • dw:从当前的游标位置开始删除,一直到下一个单词为止(或者是多个单词,如果命令前有数字)。
  • D:从游标位置开始删除,一直到当前行结束。
  • dd:删除游标所在的行

修改

  • cc:删除当前行的内容,保留用户输入的文本
  • cw:修改游标所在的单词,修改范围是从游标位置一直到单词结束。该命令还是的用户进入插入模式。
  • r:替换游标所在的字符。完成替换之后,vi将返回命令模式。
  • R:覆盖从游标当前所在的字符开始的多个字符。必需按Esc停止覆盖。
  • s:用输入字符替换当前字符。完成后,用户任然处于插入状态下。
  • S:删除游标所在的行并用新文本替换。输入新文本后,vi任然保持在插入模式下。

复制

  • yy:单行复制
  • nyy:n行复制
  • yw:拖动(复制)当前单词,拖动的范围是从游标所在的单词一直到单词结尾

粘贴

  • p:在光标下一行粘贴
  • P:在光标上一行粘贴

高级命令

  • J:将当前行与它下面的行合并到一起

由于终端窗口大小不同,新行从什么地方开始可能会令人混淆。新行从*后开始。
在命令模式下使用set nu选项可以为新行添加编号。
删除行编号的命令是set nonu。