Linux Vim 常用快捷键大全
Vim 是一款功能强大的文本编辑器,熟练掌握其快捷键可以极大提高编辑效率。以下是 Vim 的常用快捷键分类整理:
1. 模式切换
| 快捷键 |
功能说明 |
i |
进入插入模式(在光标前插入) |
a |
进入插入模式(在光标后插入) |
I |
进入插入模式(在行首插入) |
A |
进入插入模式(在行尾插入) |
o |
在当前行下方新建一行并进入插入模式 |
O |
在当前行上方新建一行并进入插入模式 |
Esc 或 Ctrl+[ |
返回普通模式 |
v |
进入可视模式(字符选择) |
V |
进入可视模式(行选择) |
Ctrl+v |
进入可视模式(块选择) |
: |
进入命令模式 |
2. 光标移动
基本移动
| 快捷键 |
功能说明 |
h |
左移 |
j |
下移 |
k |
上移 |
l |
右移 |
w |
移动到下一个单词开头 |
W |
移动到下一个单词开头(忽略标点) |
b |
移动到上一个单词开头 |
B |
移动到上一个单词开头(忽略标点) |
e |
移动到单词末尾 |
E |
移动到单词末尾(忽略标点) |
行内移动
| 快捷键 |
功能说明 |
0 |
移动到行首 |
^ |
移动到行首第一个非空白字符 |
| ` |
快捷键 |
| -------- |
---------- |
0 |
移动到行首 |
^ |
移动到行首第一个非空白字符 |
| 移动到行尾 |
|
f{字符} |
向右移动到指定字符,如 fa 移动到下一个 a |
F{字符} |
向左移动到指定字符 |
t{字符} |
向右移动到指定字符前 |
T{字符} |
向左移动到指定字符前 |
; |
重复上一次 f、F、t、T 操作 |
, |
反向重复上一次 f、F、t、T 操作 |
页面移动
| 快捷键 |
功能说明 |
gg |
移动到文件开头 |
G |
移动到文件末尾 |
:{行号} |
跳转到指定行,如 :50 跳转到第50行 |
Ctrl+f |
向下翻页 |
Ctrl+b |
向上翻页 |
Ctrl+d |
向下翻半页 |
Ctrl+u |
向上翻半页 |
H |
移动到屏幕顶部 |
M |
移动到屏幕中间 |
L |
移动到屏幕底部 |
zz |
将当前行置于屏幕中央 |
3. 编辑操作
删除操作
| 快捷键 |
功能说明 |
x |
删除当前字符 |
X |
删除前一个字符 |
dd |
删除当前行 |
dw |
删除到下一个单词开头 |
de |
删除到单词末尾 |
| `d |
快捷键 |
| -------- |
---------- |
x |
删除当前字符 |
X |
删除前一个字符 |
dd |
删除当前行 |
dw |
删除到下一个单词开头 |
de |
删除到单词末尾 |
或 D |
删除到行尾 |
d0 |
删除到行首 |
dgg |
删除到文件开头 |
dG |
删除到文件末尾 |
d{数字}j |
向下删除指定行数,如 d5j 删除5行 |
d{数字}k |
向上删除指定行数 |
复制粘贴
| 快捷键 |
功能说明 |
yy |
复制当前行 |
yw |
复制当前单词 |
| `y |
快捷键 |
| -------- |
---------- |
yy |
复制当前行 |
yw |
复制当前单词 |
| 复制到行尾 |
|
p |
在光标后粘贴 |
P |
在光标前粘贴 |
"*p |
从系统剪贴板粘贴 |
撤销重做
| 快捷键 |
功能说明 |
u |
撤销 |
Ctrl+r |
重做 |
U |
撤销当前行的所有修改 |
替换操作
| 快捷键 |
功能说明 |
r{字符} |
替换当前字符 |
R |
进入替换模式 |
cw |
修改当前单词 |
cc |
修改整行 |
| `c |
快捷键 |
| -------- |
---------- |
r{字符} |
替换当前字符 |
R |
进入替换模式 |
cw |
修改当前单词 |
cc |
修改整行 |
| 修改到行尾 |
|
C |
修改到行尾(同 c$) |
s |
删除当前字符并进入插入模式 |
S |
删除当前行并进入插入模式 |
4. 搜索替换
| 快捷键 |
功能说明 |
/pattern |
向前搜索模式 |
?pattern |
向后搜索模式 |
n |
重复上一次搜索 |
N |
反向重复上一次搜索 |
* |
搜索当前光标下的单词 |
# |
反向搜索当前光标下的单词 |
:%s/old/new/g |
全局替换 |
:%s/old/new/gc |
全局替换(带确认) |
:s/old/new/g |
当前行替换 |
5. 缩进和格式化
| 快捷键 |
功能说明 |
>> |
当前行向右缩进 |
<< |
当前行向左缩进 |
== |
自动缩进当前行 |
gg=G |
自动缩进整个文件 |
>{移动命令} |
向右缩进选中的文本 |
<{移动命令} |
向左缩进选中的文本 |
6. 窗口和标签页
窗口操作
| 快捷键 |
功能说明 |
:sp [文件] |
水平分割窗口 |
:vsp [文件] |
垂直分割窗口 |
Ctrl+w h |
切换到左边窗口 |
Ctrl+w j |
切换到下边窗口 |
Ctrl+w k |
切换到上边窗口 |
Ctrl+w l |
切换到右边窗口 |
Ctrl+w w |
循环切换窗口 |
Ctrl+w = |
使所有窗口等宽等高 |
Ctrl+w + |
增加窗口高度 |
Ctrl+w - |
减少窗口高度 |
Ctrl+w > |
增加窗口宽度 |
Ctrl+w < |
减少窗口宽度 |
Ctrl+w q |
关闭当前窗口 |
Ctrl+w o |
只保留当前窗口 |
标签页操作
| 快捷键 |
功能说明 |
:tabnew [文件] |
新建标签页 |
:tabclose |
关闭当前标签页 |
:tabonly |
关闭其他所有标签页 |
gt |
切换到下一个标签页 |
gT |
切换到上一个标签页 |
{数字}gt |
切换到指定编号的标签页 |
7. 宏录制
| 快捷键 |
功能说明 |
q{寄存器} |
开始录制宏到指定寄存器,如 qa |
q |
停止录制宏 |
@{寄存器} |
执行指定寄存器的宏,如 @a |
@@ |
重复执行上一次的宏 |
8. 实用命令
| 快捷键 |
功能说明 |
:w |
保存文件 |
:q |
退出 |
:q! |
强制退出(不保存) |
:wq 或 :x |
保存并退出 |
:e! |
重新加载文件(放弃修改) |
:set number 或 :set nu |
显示行号 |
:set nonumber 或 :set nonu |
隐藏行号 |
:set paste |
进入粘贴模式(避免自动缩进) |
:set nopaste |
退出粘贴模式 |
Ctrl+g |
显示当前文件信息和位置 |
K |
查看当前光标下单词的手册页 |
9. 可视模式操作
| 快捷键 |
功能说明 |
v |
进入字符选择模式 |
V |
进入行选择模式 |
Ctrl+v |
进入块选择模式 |
o |
在可视模式下切换选择端点 |
aw |
选择一个单词 |
ab |
选择一对圆括号内的内容 |
aB |
选择一对花括号内的内容 |
it |
选择一个标签内的内容(HTML/XML) |
10. 实用技巧和组合
# 常用组合示例:
# 删除从当前行到文件末尾
dG
# 复制从当前行到第10行
:10y
# 在当前行下方复制当前行
yyp
# 交换两行
ddp
# 自动格式化整个文件
gg=G
# 删除所有空白行
:g/^$/d
# 删除所有包含"debug"的行
:g/debug/d
# 在每行行尾添加分号
:%s/$/;/
# 快速注释多行(块选择模式)
Ctrl+v → 选择行 → I → # → Esc
# 快速取消注释多行(块选择模式)
Ctrl+v → 选择注释符号 → d
学习建议
- 循序渐进:先从基本的光标移动和编辑命令开始
- 多用多练:在实际工作中强制自己使用 Vim
- 使用 Vimtutor:运行
vimtutor 命令进行交互式学习
- 定制配置:创建自己的
.vimrc 配置文件
- 安装插件:根据需要安装合适的插件增强功能
记住,Vim 的学习曲线虽然陡峭,但一旦掌握,编辑效率会大幅提升。建议将这份快捷键列表打印出来或放在手边,随时查阅。