“我刚学 Linux,为什么一进服务器默认编辑器就是 Vim?”
“我只是想改个配置文件,结果连退出都搜了十分钟。”
“现在都有 VS Code 了,为什么运维还要学这个黑框框里的编辑器?”
这话我太懂了。
我刚接触 Linux 的时候,也觉得 Vim 像是专门用来劝退新人的东西。界面不友好,鼠标点不了,输入文字还要先按 i,退出还要敲命令。
但真正在服务器上摸爬滚打几年后,你会发现:Vim 不是情怀,也不是前辈故意折腾新人。
它更像一把随身小刀。
不一定最漂亮,但关键时刻一定能用。
一、你以为能逃过 Vim,服务器会把你拽回来
很多 Linux 新人一开始都会想:
我本地用 VS Code 写好,再传上服务器不就行了?
真要改文件,用 Nano 不行吗?
平时当然可以。
问题是,服务器现场经常不按你的理想环境来。
场景 1:最小化系统里,Nano 可能根本没装
你买了一台云服务器,选了最小化安装。
连上 SSH 后想改配置:
vi /etc/ssh/sshd_config
编辑器打开了。
你想换 Nano:
nano
结果系统提示:
-bash: nano: command not found
这并不稀奇。
很多最小化安装环境不会预装 Nano、Emacs、图形编辑器,但通常会保留一个 vi 或 vi 兼容编辑器。
注意这里说的是 vi 或 vi 兼容编辑器,不一定是完整版 Vim。
有的系统里 /usr/bin/vi 指向 Vim,有的可能是 vim-minimal、vim-tiny、nvi,甚至是 BusyBox 提供的简化版 vi。
所以我们真正要学的,不是“每台机器都有完整 Vim 插件生态”,而是:掌握 vi/Vim 系编辑器的基础操作。
场景 2:线上故障时,你没时间折腾远程开发
平时 VS Code Remote SSH 很好用。
我也承认,它写项目、看目录、跳转代码都舒服。
但线上排障不是写作业。
服务器负载高、网络抖、跳板机限制多、权限隔离严格,远程插件可能连不上,文件也不方便下载再上传。
这时你只需要改一行配置、注释一个参数、保存后重启服务。
最稳的办法往往就是:
sudo vi /etc/nginx/nginx.conf
不会 Vim,不是不能工作。
但在这种场景里,你会非常被动。
场景 3:救援环境里,图形工具通常指望不上
系统进不了正常模式、网络没起来、只能进 rescue shell。
这时不要指望完整开发环境。
甚至也不要假设一定有完整版 Vim。
更准确地说:救援环境里常见的是一个足够基础的 vi 或兼容编辑器。它可能功能很少,但只要你会基础移动、插入、保存退出,就能把关键配置改回来。
对运维来说,“最坏情况下还能用”,就是硬实力。
二、为什么偏偏是 vi/Vim?
这事要从历史和生态说起。
vi 是 Unix 时代就存在的经典文本编辑器,作者是 Bill Joy,诞生于 20 世纪 70 年代后期。
Vim 是 “Vi IMproved”,也就是 vi 的增强版,由 Bram Moolenaar 开发,早期在 1991 年发布。
Linux 不是“天生就指定 Vim 为唯一默认编辑器”。
更准确地说,Linux 发行版继承了 Unix 世界长期形成的习惯:服务器环境需要一个能在终端里工作的标准文本编辑器,而 vi 的操作方式、文档、脚本习惯和管理员经验已经沉淀了几十年。
这就是为什么很多教程会写:
vi /etc/xxx.conf
不是因为所有作者都爱 Vim。
而是因为它足够普遍,足够传统,足够适合终端环境。
三、Vim 难,不是因为命令多,而是因为它有“模式”
很多人第一次用 Vim 崩溃,是因为他以为打开后就能直接输入。
结果键盘敲半天,屏幕没有按预期写字。
这是因为 Vim 不是普通“打字板”。
它有模式。
最重要的两个是:
打开文件后,默认在正常模式。
你想输入内容,要先按:
i
进入插入模式。
输入完了,按:
Esc
回到正常模式。
保存退出这类命令,也是在正常模式下输入:
:wq
新手只要把这个逻辑想明白,恐惧感会少一半。
Vim 的模式不是反人类,而是把“编辑文字”和“操作文字”分开。
你在插入模式里写字。
你在正常模式里移动、删除、复制、查找、替换。
四、新人先会这 12 个操作,就能活下来
不要一上来背一百个快捷键。
入门阶段只要掌握“能打开、能改、能保存、能退出、能找内容”,就够用了。
1. 打开文件
vim 文件名
如果系统没有 vim,可以试:
vi 文件名
很多发行版会让 vi 指向 Vim 或 vi 兼容版本。
2. 进入插入模式
i
在当前光标前进入插入模式。
你也可以用:
a
在当前光标后进入插入模式。
新手先记 i 就行。
3. 回到正常模式
Esc
大多数时候,只要你不知道自己在哪个模式,先按 Esc。
严格说,Vim 还有可视模式、命令行模式等,Esc 在不同场景下的行为略有差异。
但对新手来说,“迷路先 Esc”仍然是最实用的经验。
4. 保存并退出
:wq
w 是 write,写入保存。
q 是 quit,退出。
5. 不保存强制退出
:q!
改乱了、不想保存,用它。
这条命令值得背到肌肉记忆里。
6. 只保存不退出
:w
适合改配置改到一半,先落盘保存。
7. 只退出
:q
如果文件没改动,可以直接退出。
如果改过内容,Vim 会提示你不能直接退出。
8. 光标移动
方向键通常也能用。
但建议记住这四个:
h 左j 下k 上l 右
为什么要记?
因为某些远程终端、极简环境、键盘映射异常时,方向键可能不顺手。
hjkl 是 vi/Vim 的基础移动方式。
9. 跳到文件开头和结尾
gg
跳到第一行。
G
跳到最后一行。
10. 跳到指定行
:123
直接跳到第 123 行。
排查报错时特别常用。
11. 删除、复制、粘贴
x
删除光标所在字符。
dd
删除当前行。
注意:dd 不只是删除,也会把这一行放进默认寄存器,所以后面可以粘贴回来。
yy
复制当前行。
p
粘贴。
如果复制的是整行,p 会粘贴到当前行下面;如果复制的是普通字符内容,p 会放到光标后面。
12. 搜索
/关键字
回车后跳到匹配位置。
继续找下一个:
n
反方向找:
N
对于 /关键字 这种向下搜索,n 通常就是下一个,N 是上一个。
五、再补一个救命键:撤销
如果只能再多记一个命令,我建议记它:
u
撤销上一步修改。
配置文件改坏了,先别慌。
按 Esc 回正常模式,再按 u。
很多新手怕 Vim,是因为觉得“改错了就完了”。
其实 Vim 的撤销能力很强。
先会 u,你就敢动手了。
六、上篇小结:别急着精通,先做到不怕
Linux 新人学 Vim,第一目标不是炫技。
不是配置漂亮主题。
不是装一堆插件。
第一目标只有一个:
在服务器上遇到配置文件时,你能打开、能修改、能保存、能安全退出。
记住这条路线:
会这些,你就已经能处理很多真实服务器场景了。
下篇我们继续讲:为什么 Vim 用熟了真的快,以及新人最容易踩的几个坑,比如批量替换、权限不足、粘贴缩进乱掉、交换文件提示到底该不该删。