快捷键 | 描述 | 模式 | 使用频率 |
---|---|---|---|
h , j , k , l | 左移、下移、上移、右移光标 | 普通模式 | |
w , b | 向前/向后移动到下一个单词的开头 | 普通模式 | |
e , ge | 向前/向后移动到下一个单词的末尾 | 普通模式 | |
0 , ^ | 移动到行首 (第一个字符)、移动到行首 (第一个非空字符) | 普通模式 | |
$ | 移动到行尾 | 普通模式 | |
G | 移动到文件末尾 | 普通模式 | 6 |
gg | 移动到文件开头 | 普通模式 | 6 |
[n]G | 移动到第 n 行 (例如 10G 移动到第 10 行) | 普通模式 | |
dd | 删除当前行 | 普通模式 | 7 |
dw | 删除从光标到单词末尾的内容 | 普通模式 | |
x | 删除光标下的字符 | 普通模式 | |
yy | 复制(yank)当前行 | 普通模式 | |
yw | 复制(yank)从光标到单词末尾的内容 | 普通模式 | |
p | 在光标后/下一行粘贴 | 普通模式 | |
P | 在光标前/上一行粘贴 | 普通模式 | |
u | 撤销(Undo) | 普通模式 | |
Ctrl + r | 重做(Redo) | 普通 普通模式 | |
i | 在光标前插入 | 普通模式 | 7 |
a | 在光标后追加 | 普通模式 | |
I | 在当前行行首插入 | 普通模式 | |
A | 在当前行行尾追加 | 普通模式 | |
o | 在当前行下方新建一行并进入插入模式 | 普通模式 | |
O | 在当前行上方新建一行并进入插入模式 | 普通模式 | |
r | 替换光标下的单个字符(输入 r 后再输入要替换的字符) | 普通模式 | |
R | 进入替换模式(可以替换多个字符直到按 Esc ) | 普通模式 | |
/pattern | 向下搜索 pattern | 普通模式 | 5 |
?pattern | 向上搜索 pattern | 普通模式 | 5 |
n | 跳转到下一个搜索结果 | 普通模式 | 5 |
N | 跳转到上一个搜索结果 | 普通模式 | 5 |
* | 向下搜索光标下的单词 | 普通模式 | |
# | 向上搜索光标下的单词 | 普通模式 | |
v | 进入可视化模式(字符选择) | 普通模式 | |
V | 进入可视化模式(行选择) | 普通模式 | |
Ctrl + v | 进入可视化模式(块选择) | 普通模式 | |
: | 进入命令行模式(Ex Mode) | 普通模式 | 7 |
在命令行模式下常用(按 :
后输入):
命令 | 描述 | 模式 |
---|---|---|
:w | 保存文件 | 命令行模式 |
:q | 退出 Vim | 命令行模式 |
:wq 或 :x | 保存并退出 | 命令行模式 |
:q! | 不保存,强制退出 | 命令行模式 |
:w! | 强制保存 | 命令行模式 |
:s/old/new/g | 在当前行替换所有 old 为 new | 命令行模式 |
:%s/old/new/g | 在整个文件中替换所有 old 为 new | 命令行模式 |
:%s/old/new/gc | 在整个文件中替换,并提示确认 (c for confirm) | 命令行模式 |
set nu | 显示行号 |
学习 Vim 的关键在于理解它的模式以及命令的组合性(例如 d
删除 + w
单词 = dw
删除一个单词)。多加练习,这些快捷键就会变得非常自然。