Vim 基础命令速查
Vim 常用命令快速参考
📋 模式切换
| 命令 | 说明 |
|---|
i | 进入插入模式(光标前) |
a | 进入插入模式(光标后) |
o | 在下一行插入 |
O | 在上一行插入 |
v | 进入可视模式 |
V | 进入行可视模式 |
Ctrl+v | 进入块可视模式 |
Esc | 返回普通模式 |
: | 进入命令模式 |
🎯 光标移动
基本移动
| 命令 | 说明 |
|---|
h | 左移一个字符 |
j | 下移一行 |
k | 上移一行 |
l | 右移一个字符 |
单词移动
| 命令 | 说明 |
|---|
w | 移动到下一个单词开头 |
W | 移动到下一个单词开头(忽略标点) |
b | 移动到上一个单词开头 |
B | 移动到上一个单词开头(忽略标点) |
e | 移动到单词末尾 |
E | 移动到单词末尾(忽略标点) |
行内移动
| 命令 | 说明 |
|---|
0 | 移动到行首 |
^ | 移动到行首(非空白字符) |
$ | 移动到行尾 |
g_ | 移动到行尾(非空白字符) |
文件内移动
| 命令 | 说明 |
|---|
gg | 移动到文件开头 |
G | 移动到文件末尾 |
{n}G | 移动到第 n 行 |
:{n} | 移动到第 n 行 |
% | 匹配括号移动 |
屏幕移动
| 命令 | 说明 |
|---|
H | 移动到屏幕顶部 |
M | 移动到屏幕中间 |
L | 移动到屏幕底部 |
Ctrl+f | 向下翻页 |
Ctrl+b | 向上翻页 |
Ctrl+d | 向下半页 |
Ctrl+u | 向上半页 |
✏️ 文本编辑
删除
| 命令 | 说明 |
|---|
x | 删除当前字符 |
X | 删除前一个字符 |
dd | 删除当前行 |
dw | 删除单词 |
d$ | 删除到行尾 |
d0 | 删除到行首 |
dgg | 删除到文件开头 |
dG | 删除到文件末尾 |
复制
| 命令 | 说明 |
|---|
yy | 复制当前行 |
yw | 复制单词 |
y$ | 复制到行尾 |
y0 | 复制到行首 |
ygg | 复制到文件开头 |
yG | 复制到文件末尾 |
粘贴
撤销与重做
替换
| 命令 | 说明 |
|---|
r | 替换单个字符 |
R | 进入替换模式 |
s | 删除字符并进入插入模式 |
S | 删除整行并进入插入模式 |
cw | 删除单词并进入插入模式 |
c$ | 删除到行尾并进入插入模式 |
🔍 搜索与替换
搜索
| 命令 | 说明 |
|---|
/pattern | 向下搜索 |
?pattern | 向上搜索 |
n | 下一个匹配 |
N | 上一个匹配 |
* | 搜索当前单词(向下) |
# | 搜索当前单词(向上) |
替换
| 命令 | 说明 |
|---|
:s/old/new | 替换当前行第一个匹配 |
:s/old/new/g | 替换当前行所有匹配 |
:%s/old/new/g | 替换全文所有匹配 |
:%s/old/new/gc | 替换全文(确认) |
:n1,n2s/old/new/g | 替换 n1 到 n2 行 |
📁 文件操作
| 命令 | 说明 |
|---|
:w | 保存文件 |
:q | 退出 |
:wq 或 :x | 保存并退出 |
:q! | 强制退出(不保存) |
:e <file> | 打开文件 |
:w <file> | 另存为 |
:r <file> | 读取文件内容插入 |
:saveas <file> | 另存为 |
🪟 多文件编辑
窗口分割
| 命令 | 说明 |
|---|
:split 或 :sp | 水平分割 |
:vsplit 或 :vs | 垂直分割 |
Ctrl+w s | 水平分割 |
Ctrl+w v | 垂直分割 |
Ctrl+w q | 关闭当前窗口 |
Ctrl+w o | 只保留当前窗口 |
窗口切换
| 命令 | 说明 |
|---|
Ctrl+w h | 切换到左窗口 |
Ctrl+w j | 切换到下窗口 |
Ctrl+w k | 切换到上窗口 |
Ctrl+w l | 切换到右窗口 |
Ctrl+w w | 循环切换窗口 |
标签页
| 命令 | 说明 |
|---|
:tabnew | 新建标签页 |
:tabclose | 关闭当前标签页 |
gt | 下一个标签页 |
gT | 上一个标签页 |
{n}gt | 切换到第 n 个标签页 |
🎬 宏录制
| 命令 | 说明 |
|---|
q{a-z} | 开始录制宏到寄存器 |
q | 停止录制 |
@{a-z} | 执行宏 |
@@ | 重复执行上次宏 |
{n}@{a-z} | 执行宏 n 次 |
📝 其他常用命令
| 命令 | 说明 |
|---|
. | 重复上次操作 |
J | 合并下一行到当前行 |
>> | 向右缩进 |
<< | 向左缩进 |
== | 自动缩进 |
:set number | 显示行号 |
:set nonumber | 隐藏行号 |
:set relativenumber | 显示相对行号 |
提示:这些命令可以组合使用,例如 d3w 表示删除 3 个单词,y5j 表示向下复制 5 行。