Vim 命令速查表
快速参考 Vim 常用命令,方便日常查阅。
基础操作
启动和退出
| 命令 | 作用 |
|---|---|
vim | 启动 Vim |
vim file | 打开文件 |
:q | 退出 |
:q! | 强制退出,不保存 |
:w | 保存 |
:wq 或 :x | 保存并退出 |
ZZ | 保存并退出(快捷方式) |
ZQ | 不保存退出(快捷方式) |
模式切换
| 命令 | 作用 |
|---|---|
i | 在光标前插入 |
a | 在光标后插入 |
I | 在行首插入 |
A | 在行尾插入 |
o | 在下方新建一行 |
O | 在上方新建一行 |
Esc 或 Ctrl+[ | 回到普通模式 |
v | 字符可视模式 |
V | 行可视模式 |
Ctrl+v | 块可视模式 |
: | 命令行模式 |
光标移动
基本移动
| 命令 | 作用 |
|---|---|
h | 左移 |
j | 下移 |
k | 上移 |
l | 右移 |
行内移动
| 命令 | 作用 |
|---|---|
0 | 行首 |
^ | 行首第一个非空字符 |
$ | 行尾 |
g_ | 行尾最后一个非空字符 |
w | 下一个单词开头 |
e | 下一个单词结尾 |
b | 上一个单词开头 |
ge | 上一个单词结尾 |
f{char} | 跳到字符(向后) |
F{char} | 跳到字符(向前) |
t{char} | 跳到字符前(向后) |
T{char} | 跳到字符后(向前) |
; | 重复上次 f/t 搜索 |
, | 反向重复上次 f/t 搜索 |
行间移动
| 命令 | 作用 |
|---|---|
gg | 文件开头 |
G | 文件末尾 |
nG | 跳到第 n 行 |
:n | 跳到第 n 行 |
{ | 上一个段落 |
} | 下一个段落 |
H | 屏幕顶部 |
M | 屏幕中间 |
L | 屏幕底部 |
Ctrl+f | 向下翻页 |
Ctrl+b | 向上翻页 |
Ctrl+d | 向下翻半页 |
Ctrl+u | 向上翻半页 |
编辑操作
删除
| 命令 | 作用 |
|---|---|
x | 删除光标处字符 |
X | 删除光标前字符 |
dd | 删除整行 |
D | 删除到行尾 |
dw | 删除单词 |
diw | 删除当前单词 |
di" | 删除引号内内容 |
di( | 删除括号内内容 |
复制和粘贴
| 命令 | 作用 |
|---|---|
yy | 复制整行 |
yw | 复制单词 |
yiw | 复制当前单词 |
y$ | 复制到行尾 |
p | 在光标后/下方粘贴 |
P | 在光标前/上方粘贴 |
修改
| 命令 | 作用 |
|---|---|
cc 或 S | 修改整行 |
C | 修改到行尾 |
cw | 修改单词 |
ciw | 修改当前单词 |
ci" | 修改引号内内容 |
ci( | 修改括号内内容 |
r | 替换单个字符 |
R | 替换模式 |
~ | 切换大小写 |
撤销和重做
| 命令 | 作用 |
|---|---|
u | 撤销 |
Ctrl+r | 重做 |
U | 撤销整行修改 |
. | 重复上次操作 |
搜索和替换
搜索
| 命令 | 作用 |
|---|---|
/{pattern} | 向前搜索 |
?{pattern} | 向后搜索 |
n | 下一个匹配 |
N | 上一个匹配 |
* | 向前搜索当前单词 |
# | 向后搜索当前单词 |
替换
| 命令 | 作用 |
|---|---|
:s/old/new/ | 替换当前行第一个 |
:s/old/new/g | 替换当前行所有 |
:%s/old/new/g | 替换整个文件 |
:%s/old/new/gc | 替换并确认 |
:5,10s/old/new/g | 替换 5-10 行 |
寄存器
| 命令 | 作用 |
|---|---|
:reg | 查看寄存器 |
"ayy | 复制到寄存器 a |
"ap | 粘贴寄存器 a |
"0p | 粘贴上次复制 |
"1p | 粘贴上次删除 |
"+yy | 复制到系统剪贴板 |
"+p | 从系统剪贴板粘贴 |
Ctrl+r = | 表达式寄存器 |
宏
| 命令 | 作用 |
|---|---|
q{寄存器} | 开始录制 |
q | 停止录制 |
@{寄存器} | 播放宏 |
@@ | 重复上次宏 |
10@{寄存器} | 播放 10 次 |
多文件编辑
缓冲区
| 命令 | 作用 |
|---|---|
:e file | 打开文件 |
:bnext 或 :bn | 下一个缓冲区 |
:bprev 或 :bp | 上一个缓冲区 |
:bd | 删除缓冲区 |
:ls | 列出缓冲区 |
:b n | 切换到第 n 个缓冲区 |
窗口
| 命令 | 作用 |
|---|---|
:split 或 :sp | 水平分割 |
:vsplit 或 :vsp | 垂直分割 |
Ctrl+w h | 移到左窗口 |
Ctrl+w j | 移到下窗口 |
Ctrl+w k | 移到上窗口 |
Ctrl+w l | 移到右窗口 |
Ctrl+w c | 关闭窗口 |
Ctrl+w o | 只保留当前窗口 |
标签页
| 命令 | 作用 |
|---|---|
:tabnew | 新建标签页 |
:tabnext 或 :tn | 下一个标签页 |
:tabprev 或 :tp | 上一个标签页 |
:tabclose 或 :tabc | 关闭标签页 |
gt | 切换到下一个标签页 |
gT | 切换到上一个标签页 |
ngt | 切换到第 n 个标签页 |
可视模式
| 命令 | 作用 |
|---|---|
v | 字符可视模式 |
V | 行可视模式 |
Ctrl+v | 块可视模式 |
d | 删除选中 |
y | 复制选中 |
c | 修改选中 |
> | 向右缩进 |
< | 向左缩进 |
= | 自动缩进 |
gv | 重新选择上次区域 |
其他实用命令
文件操作
| 命令 | 作用 |
|---|---|
:pwd | 显示当前目录 |
:cd dir | 切换目录 |
:saveas file | 另存为 |
帮助
| 命令 | 作用 |
|---|---|
:help | 打开帮助 |
:help {主题} | 查看特定主题 |
K | 查看光标下单词的帮助 |
外部命令
| 命令 | 作用 |
|---|---|
:!{cmd} | 执行外部命令 |
:r !{cmd} | 插入命令输出 |
:.!{cmd} | 用命令输出替换当前行 |
记忆技巧
操作符
d= delete(删除)c= change(修改)y= yank(复制)>= 右移<= 左移
文本对象
i= inner(内部)a= around(包含边界)w= word(单词)p= paragraph(段落)""= 引号(,),b= 圆括号{,},B= 花括号
组合公式
操作符 + 动作 = 操作
示例:
d + w = 删除单词
c + i" = 修改引号内内容
y + ip = 复制段落
> + G = 缩进到文件末尾