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