| 模式切换 |
i |
进入插入模式(在光标前插入文本)。 |
|
a |
进入插入模式(在光标后插入文本)。 |
|
o |
在当前行下方插入新行并进入插入模式。 |
|
O |
在当前行上方插入新行并进入插入模式。 |
|
Esc |
退出插入模式,返回命令模式。 |
|
: |
进入命令模式(用于输入命令,如保存、退出等)。 |
| 光标移动 |
h |
向左移动光标。 |
|
j |
向下移动光标。 |
|
k |
向上移动光标。 |
|
l |
向右移动光标。 |
|
0 |
移动到行首。 |
|
$ |
移动到行尾。 |
|
gg |
移动到文件开头。 |
|
G |
移动到文件末尾。 |
|
<n>G |
移动到第 n 行(例如 5G 移动到第 5 行)。 |
|
Ctrl + f |
向下翻页。 |
|
Ctrl + b |
向上翻页。 |
| 文本编辑 |
x |
删除光标处的字符。 |
|
dd |
删除当前行。 |
|
<n>dd |
删除从当前行开始的 n 行(例如 3dd 删除 3 行)。 |
|
yy |
复制当前行。 |
|
<n>yy |
复制从当前行开始的 n 行(例如 3yy 复制 3 行)。 |
|
p |
粘贴到光标后。 |
|
P |
粘贴到光标前。 |
|
u |
撤销上一次操作。 |
|
Ctrl + r |
重做上一次撤销的操作。 |
|
r |
替换光标处的字符。 |
|
cw |
删除从光标处到单词结尾的内容并进入插入模式。 |
|
cc |
删除当前行并进入插入模式。 |
| 查找与替换 |
/<pattern> |
向下查找指定模式(例如 /hello 查找 hello)。 |
|
?<pattern> |
向上查找指定模式。 |
|
n |
跳转到下一个匹配项。 |
|
N |
跳转到上一个匹配项。 |
|
:%s/<old>/<new>/g |
全局替换(将文件中所有的 old 替换为 new)。 |
|
:%s/<old>/<new>/gc |
全局替换,每次替换前确认。 |
| 保存与退出 |
:w |
保存文件。 |
|
:w <filename> |
另存为指定文件名。 |
|
:q |
退出编辑器(如果没有修改)。 |
|
:q! |
强制退出,不保存修改。 |
|
:wq 或 :x |
保存并退出。 |
|
ZZ |
保存并退出(命令模式下直接输入)。 |
| 分屏操作 |
:sp <filename> |
水平分屏打开文件。 |
|
:vsp <filename> |
垂直分屏打开文件。 |
|
Ctrl + w + w |
在分屏窗口间切换。 |
|
Ctrl + w + q |
关闭当前分屏窗口。 |
| 其他操作 |
. |
重复上一次操作。 |
|
J |
将当前行与下一行合并。 |
|
>> |
缩进当前行。 |
|
<< |
取消当前行缩进。 |
|
:set number |
显示行号。 |
|
:set nonumber |
隐藏行号。 |
|
:set paste |
进入粘贴模式(避免自动缩进)。 |
|
:set nopaste |
退出粘贴模式。 |
| Vim 特有 |
Ctrl + n |
自动补全(在插入模式下使用)。 |
|
:e <filename> |
打开另一个文件。 |
|
:bn |
切换到下一个缓冲区。 |
|
:bp |
切换到上一个缓冲区。 |
|
:bd |
关闭当前缓冲区。 |
|
:help <command> |
查看帮助文档(例如 :help :w)。 |