Vim 编辑器从入门到上瘾:一篇文章搞定 Linux 程序员的"瑞士军刀"
在 AI Copilot 满天飞的 2026,依然有一群人执着地在终端里用 Vim 改配置、写代码、调脚本。不是他们守旧,而是——一旦你真正学会 Vim,就再也回不去了。
一、Vi 与 Vim:先搞清楚关系
很多新手分不清 vi 和 vim,其实一句话就能讲明白:
| 名称 | 全称 | 特点 |
|---|---|---|
| vi | Visual Editor | 系统自带、无需安装、功能基础 |
| vim | Vi IMproved | vi 的增强版,需手动安装,支持语法高亮、多级撤销、插件等 |
💡 结论:在生产环境优先用
vim,最小化系统装机后先yum install vim -y或apt install vim -y。
二、Vim 的”三层境界”——四种模式
很多人学不会 Vim,是因为没搞懂它的模式切换思想。普通编辑器只有”输入”一种状态,而 Vim 把操作拆成了四种模式。
| 模式 | 进入方式 | 用途 |
|---|---|---|
| 命令模式 | 默认/Esc |
移动光标、复制粘贴、删除 |
| 编辑模式 | iao 等 |
录入文字 |
| 底行模式 | : |
保存、退出、搜索、替换 |
| 可视(块)模式 | v / V / Ctrl+v |
批量选择、操作 |
记住一句口诀:“按 Esc 永远没错”。迷路了就回到命令模式重新开始。
三、最小可用:从打开到保存
1. 打开文件
vim /tmp/test.txt
⚠️ 注意:
文件不存在:自动创建(保存时生效)
目录不存在:保存时会报错,需先
mkdir -p
2. 进入编辑
按 i 进入插入模式,左下角会出现 -- INSERT --,然后就可以正常输入。
3. 退出编辑
按 Esc,回到命令模式。
4. 保存与退出
进入底行模式(按 :)后输入:
| 命令 | 含义 |
|---|---|
:w |
保存(write) |
:q |
退出(quit) |
:wq |
保存并退出 |
:q! |
强制不保存退出(改坏了用它) |
:wq! |
强制保存退出(针对只读文件 + root) |
ZZ |
等价于 :wq(注意是大写) |
四、光标移动:Vim 速度的灵魂
不要再用方向键! 把右手放在键盘中排上,效率立刻翻倍。
字符级移动
k (上) ↑h ←━━━━┼━━━━→ l ↓ j (下)
行内跳转
| 快捷键 | 作用 |
|---|---|
0 或 ^ |
行首 |
$ |
行尾 |
w |
跳到下一个单词开头 |
b |
跳到上一个单词开头 |
f<字符> |
跳到本行下一个指定字符 |
文件级跳转
| 快捷键 | 作用 |
|---|---|
gg |
跳到第一行 |
G |
跳到最后一行 |
100gg 或 100G |
跳到第 100 行 |
Ctrl+f |
下翻一页 |
Ctrl+b |
上翻一页 |
Ctrl+d |
下翻半页 |
Ctrl+u |
上翻半页 |
五、复制、删除、粘贴:三件套必背
| 操作 | 快捷键 |
|---|---|
| 复制当前行 | yy |
| 复制 5 行 | 5yy |
| 删除(剪切)当前行 | dd |
| 删除 5 行 | 5dd |
| 粘贴到光标下方 | p |
| 粘贴到光标上方 | P |
| 重复粘贴 3 次 | 3p |
| 删除单个字符 | x |
| 删除一个单词 | dw |
| 删除到行尾 | d$ 或 D |
💡 Vim 的”剪切”和”删除”是同一个动作
d——删完的内容会自动进剪贴板。
六、撤销与重做
| 快捷键 | 作用 |
|---|---|
u |
撤销(undo) |
Ctrl+r |
重做(redo) |
. |
重复上一次操作(神技!) |
那个 .(小数点)真的是 Vim 最被低估的快捷键。比如你删了一行,想再连删 10 行,按 10 次 . 就行。
七、搜索与替换
搜索
| 命令 | 作用 |
|---|---|
/关键词 |
向下搜索 |
?关键词 |
向上搜索 |
n |
跳到下一个匹配 |
N |
跳到上一个匹配 |
:noh |
临时取消搜索高亮 |
替换(底行模式) ⭐⭐⭐⭐⭐
:s/old/new/ " 替换当前行第一个 old:s/old/new/g " 替换当前行所有 old:%s/old/new/g " 替换全文所有 old:%s/old/new/gc " 全文替换,每次询问确认:10,20s/old/new/g " 只替换 10~20 行
这是改配置文件时最高频的操作,必须练到肌肉记忆。
八、批量操作:可视模式的封神时刻
案例 1:批量删除每行开头的 #(注释)
1. 光标移到要操作的第一行第一列2. 按 Ctrl+v 进入"可视块"模式3. 按 ↓ 选中要操作的所有行4. 按 d,瞬间全部删除
案例 2:批量在每行开头加 # 注释
1. Ctrl+v 进入可视块模式2. ↓ 选中行范围3. 按 Shift+i (大写 I) 进入编辑模式4. 输入 #(空格)5. 按 Esc,魔法发生 —— 所有选中行同时插入!
案例 3:批量复制/删除整行
1. 按 Shift+v 进入"可视行"模式2. 按 ↑↓ 选行3. y 复制 / d 删除 / > 缩进 / < 反缩进
九、必备配置:让 Vim 变好用
新装系统的 Vim 体验很糟糕,强烈建议先配一下 ~/.vimrc:
" 基础显示set number " 显示行号set relativenumber " 相对行号(配合 5j/3k 使用神器)set cursorline " 高亮当前行syntax on " 语法高亮" 缩进set tabstop=4 " Tab 宽度set shiftwidth=4set expandtab " Tab 转空格set autoindent " 自动缩进" 搜索set hlsearch " 高亮搜索结果set incsearch " 边输入边搜索set ignorecase " 忽略大小写set smartcase " 含大写时区分" 编码set encoding=utf-8set fileencodings=utf-8,gbk,gb2312" 其他set mouse=a " 启用鼠标set clipboard=unnamedplus " 与系统剪贴板共享
保存后下次打开 Vim 就生效了。
十、临时命令速查(底行模式)
| 命令 | 作用 |
|---|---|
:set nu / :set nonu |
显示/取消行号 |
:set paste |
粘贴模式(防止缩进错乱) |
:e 文件名 |
在 Vim 中打开新文件 |
:r 文件名 |
把文件内容读入当前光标处 |
:!命令 |
临时执行 shell 命令,如 :!ls |
:sp 文件 |
水平分屏 |
:vsp 文件 |
垂直分屏 |
Ctrl+w + 方向键 |
切换窗口 |
十一、踩坑笔记(来自一线运维)
-
粘贴大段代码格式错乱 → 先
:set paste,粘完再:set nopaste -
文件改坏了想还原 →
:e!重新加载磁盘上的版本 -
不小心按了
Ctrl+s卡住了 → 按Ctrl+q解锁(终端流控) -
root 写不了文件 →
:w !sudo tee %,无需重开 -
想看修改过没保存的差异 →
:w !diff % - -
大文件打开慢 →
vim -u NONE 文件名,禁用插件
十二、终极速查表(建议收藏)
移动 编辑 │ h j k l ← ↓ ↑ → │ │ i 当前位置前插入 ││ gg / G 首行 / 末行 │ │ a 当前位置后插入 ││ 0 / $ 行首 / 行尾 │ │ o 下一行新建并插入 ││ 10G 跳到第10行 │ │ O 上一行新建并插入 ││ Ctrl+f/b 翻页 │ │ yy / dd / p 复制/删/贴 │ 搜索 保存 │ /关键词 向下搜 │ │ :w 保存 ││ ?关键词 向上搜 │ │ :q 退出 ││ n / N 下一个/上一个 │ │ :wq 保存并退出 ││ :%s/A/B/g 全文替换 │ │ :q! 强制退出不保存│批量 神技 │ v 字符可视 │ │ u 撤销 ││ V 整行可视 │ │ Ctrl+r 重做 ││ Ctrl+v 块可视 │ │ . 重复上次操作 ││ Shift+I 块插入 │ │ zz 当前行居中 │
写在最后
Vim 的学习曲线像一面墙:前两天恨之入骨,一周后离不开它。
不要试图一次记住所有快捷键。我的建议是:
-
第一周:只用
i/Esc/:wq/:q!/dd/yy/p/u -
第二周:加上
gg/G///:%s///g -
第三周:尝试可视块批量操作
-
一个月后:你会忘记自己曾经用过别的编辑器
把这篇文章收藏起来,每次卡住的时候翻一翻,21 天,Vim 就是你的了。
觉得有用?点个在看,转发给身边还在用方向键挪光标的兄弟。
夜雨聆风