乐于分享
好东西不私藏

Vim 编辑器从入门到上瘾:一篇文章搞定 Linux 程序员的"瑞士军刀"

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 + 方向键 切换窗口

十一、踩坑笔记(来自一线运维)

  1. 粘贴大段代码格式错乱 → 先 :set paste,粘完再 :set nopaste

  2. 文件改坏了想还原 → :e! 重新加载磁盘上的版本

  3. 不小心按了 Ctrl+s 卡住了 → 按 Ctrl+q 解锁(终端流控)

  4. root 写不了文件 → :w !sudo tee %,无需重开

  5. 想看修改过没保存的差异 → :w !diff % -

  6. 大文件打开慢 → 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 的学习曲线像一面墙:前两天恨之入骨,一周后离不开它

不要试图一次记住所有快捷键。我的建议是:

  1. 第一周:只用 i / Esc / :wq / :q! / dd / yy / p / u

  2. 第二周:加上 gg / G / / / :%s///g

  3. 第三周:尝试可视块批量操作

  4. 一个月后:你会忘记自己曾经用过别的编辑器

把这篇文章收藏起来,每次卡住的时候翻一翻,21 天,Vim 就是你的了


觉得有用?点个在看,转发给身边还在用方向键挪光标的兄弟。