移动
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。