vi-doc.md 4.2 KB

Vi Editor Cheat Sheet

光标移动命令

字符

按键 解释
h,j,k,l 左,右,上,下

文本

按键 解释
w,W,b,B 向前,向后一个词
e,E 词尾
(,) 下一个,前一个句子的开头
{,} 下一个,前一个段落的开头
[[, ]] 下一个,前一个小节的开头

按键 解释
0,$ 所在行的最前,最后位置
^ 所在行的第一个非空字符位置
+,- 下一,前一行的第一个字符位置
H 屏幕显示区内最顶端一行
M 屏幕显示区内中间一行
L 屏幕显示区内最底端一行

滚动

按键 解释
[Ctrl]F, [Ctrl]B 向前,向后滚动一个屏幕显示范围
[Ctrl]D, [Ctrl]U 向下,向上滚动半个屏幕显示范围
[Ctrl]E, [Ctrl]Y 在窗口下方,上方再多显示一行
z[Enter] 滚动屏幕,直到光标在屏幕最上方
z. 滚动屏幕,直到光标在屏幕中间
z- 滚动屏幕,直到光标在屏幕最下方

搜索

按键 解释
/ pattern 向前搜索字符pattern
? pattern 向后搜索字符pattern
n,N 在相同,不同的搜索方向上搜索上一次搜索的字符
f x 在所在行向前搜索字符x
F x 在所在行向后搜索字符x
; 重复执行上一个当前行搜索
, 重复执行上一个当前行搜索,但以相反的方向

行号

按键 解释
[Ctrl]G 显示当前行号
:set nu 显示所有行号
:set nonu 取消显示所有行号
n G 移动到行号是*n*的一行
G 移动到当前文件的最后一行

标记位置

按键 解释
m x 标记当前位置为 x
` x 移动光标至标记 x
`` 返回上一个标记
' x 移动到包含标记*x*的一行的开头
'' 返回包含上一个标记的一行的开头

编辑命令

输入

按键 解释
i,a 在光标前,后输入内容
I,A 在光标行首,尾输入内容
o,O 在光标的下,上开启新行,输入内容

替换

按键 解释
r 替换光标所在字符一次
更改大小写
c m 在移动范围为*m*的区域内更改文本,移动范围请查阅光标移动命令。(如:cw 为更改下一个词)
cc 更改当前行
C 更改至行尾的内容
R 一直替换光标所在字符,直到按下[ESC]结束
s 删除当前字符,并继续输入
S 删除当前行,并继续输入

删除,移动

按键 解释
x 删除当前字符
X 删除光标左边的字符
d m 在移动范围为*m*的区域内删除文本,移动范围请查阅光标移动命令。(如:dw 为删除下一个词)
dd 删除当前行
D 删除至行尾的内容
p,P 将删除的内容插入在光标前,后位置

Yank(拷贝)

按键 解释
y m 在移动范围为*m*的区域内拷贝文本,移动范围请查阅光标移动命令。(如:yw 为拷贝下一个词)
yy,Y 拷贝当前行
p,P 将拷贝的内容插入在光标前,后位置

其他命令

按键 解释
. 重复上一个编辑操作
u 撤销上一个编辑操作
U 撤销当前行的编辑操作
J 将光标所在行与下一行结合成同一行

保存和退出

按键 解释
ZZ 保存并退出
:x 保存并退出
:wq 保存("write" 写入)并退出
:w 保存文件
:w! 保存文件(强制)
:30,60w newfile 将从第30行到第60行的内容保存为新文件,叫做newfile
:30,60w>> file 将从第30行到第60行的内容保存添加至文件file
:q 退出
:q! 退出,放弃所有更改
:e! 放弃自上次保存后的所有修改