以下是 日常编辑最常用、最高频 的 Vim 操作指令,按「使用场景分类」整理,抛弃冷门指令,新手也能快速上手并记住:
一、核心基础(模式切换+文件操作)
| 指令 | 功能描述 | 使用场景 |
|---|---|---|
vim 文件名 |
打开/新建文件 | 启动编辑的第一步 |
i/a/o |
正常模式 → 插入模式(光标前/后/下行插入) | 开始输入文本 |
Esc |
任意模式 → 正常模式(退出编辑/命令) | 切换操作模式(万能键) |
ZZ |
正常模式:快速保存并退出 | 编辑完直接退出(最常用) |
:w |
命令行模式:保存文件 | 编辑中随时保存 |
:wq/:x |
命令行模式:保存并退出 | 替代 ZZ(习惯冒号操作) |
:q! |
命令行模式:强制退出(丢弃修改) | 编辑错了不想保存 |
:w 新文件名 |
命令行模式:另存为新文件 | 复制文件内容到新文件 |
二、光标移动(正常模式,不用切换输入法)
| 指令 | 功能描述 | 使用场景 |
|---|---|---|
h/j/k/l |
左/下/上/右移动光标 | 替代方向键(效率高) |
w/e/b |
跳至下一个单词开头/当前单词结尾/上一个单词开头 | 快速定位单词(编程常用) |
^/$ |
跳至当前行首(非空白)/行尾 | 行内快速跳转 |
gg/G |
跳至文件首行/尾行 | 全局定位(如看文件结尾) |
nG(如5G) |
跳至第 n 行 | 定位指定行(如报错行号) |
Ctrl+f/Ctrl+b |
向下/向上滚动一屏 | 长文件快速翻页 |
三、编辑核心(删/复制/粘贴/修改)
| 指令 | 功能描述 | 使用场景 |
|---|---|---|
dd |
删除当前整行 | 删行(最常用,编程高频) |
ndd(如3dd) |
删除当前行开始的 n 行 | 批量删多行 |
x |
删除光标所在字符 | 删单个字符(比退格快) |
dw/de |
删除光标至下单词开头/当前单词结尾 | 删单词(de 更常用) |
yy |
复制当前整行 | 复制行(编程高频) |
nyy(如2yy) |
复制当前行开始的 n 行 | 批量复制多行 |
p/P |
粘贴到光标下方/上方(行级)/光标后/前(字符级) | 粘贴复制内容(p 更常用) |
ce |
修改当前单词(光标至单词结尾) | 改单词(如把 old 改 new) |
r |
替换光标所在字符(无需进插入模式) | 改单个字符(如 ra 改光标字符为a) |
cc |
修改当前整行 | 清空行并重新输入 |
四、纠错与搜索(救命+高效定位)
| 指令 | 功能描述 | 使用场景 |
|---|---|---|
u |
撤销上一步操作 | 误删/误改后恢复(救命键) |
Ctrl+r |
重做被撤销的操作 | 撤销错了恢复 |
/pattern(如/test) |
向下搜索 pattern 内容 |
找关键词(编程查变量/函数) |
n/N |
跳至下一个/上一个匹配结果 | 遍历搜索结果 |
:noh |
取消搜索高亮 | 搜索后清屏(避免干扰) |
:%s/旧/新/gc(如:%s/foo/bar/gc) |
全局替换并确认 | 批量改关键词(避免误替换) |
五、实用辅助(提升效率)
| 指令 | 功能描述 | 使用场景 |
|---|---|---|
:set nu/:set nonu |
显示/隐藏行号 | 编程查行号(必备) |
v/V |
进入字符/行可视模式 | 选中文本(复制/删除) |
>>/<< |
当前行向右/向左缩进(Tab/Shift+Tab) | 编程调整代码缩进 |
:sp 文件名/:vs 文件名 |
水平/垂直分屏打开文件 | 同时编辑多个文件(如对比代码) |
Ctrl+w + 方向键 |
切换分屏窗口 | 分屏后切换编辑窗口 |
总结:新手必背「最小指令集」(10 个以内搞定日常)
- 模式切换:
i(编辑)→Esc(退出编辑) - 文件操作:
ZZ(保存退出)、:q!(强制退出) - 光标移动:
hjkl(方向)、gg/G(首尾行)、w/e(单词) - 编辑操作:
dd(删行)、yy(复制行)、p(粘贴)、u(撤销) - 搜索替换:
/关键词(搜索)、:%s/旧/新/gc(批量替换)