几乎每个 Linux 用户都经历过「误闯进 Vim 然后不知道怎么退出」的时刻。会一点 Vim 的实际价值很朴素:SSH 到服务器上改配置时,它是几乎必定存在的编辑器。本文目标是让你在服务器上高效完成「打开 → 定位 → 修改 → 保存退出」,而不是成为 Vim 玩家。
为什么是「模式」
普通编辑器里,键盘的每个键都用来输入字符;Vim 把键盘复用了:普通模式下按键是命令(删除、跳转、复制),插入模式下按键才是输入文本,可视模式用来选区,命令行模式用来执行保存、查找等动作。
刚接触时最大的混乱来源是「不知道自己处于哪个模式」。两条救命规则:
- 迷路了就按
Esc,连按几下一定回到普通模式; - 普通模式下输入
:q!回车,不保存强制退出——这是你误进 Vim 的逃生门。
最小可用命令集
服务器改配置,掌握下面这些就足够应付 90% 的场景:
进入与退出
| 操作 | 按键 |
|---|---|
| 打开文件 | vim nginx.conf |
| 进入插入模式 | i(光标前)、a(光标后)、o(下一行新建) |
| 回到普通模式 | Esc |
| 保存退出 | :wq 或 ZZ |
| 不保存退出 | :q! |
移动与定位
h j k l:左下上右(先用方向键也行,别纠结)。gg到文件头,G到文件尾,42G跳到第 42 行——看报错里的行号时直接用。/关键词回车搜索,n下一个,N上一个。找server_name、listen这类配置项极快。0行首,$行尾。
编辑
dd删整行,yy复制整行,p粘贴。x删光标处字符,u撤销,Ctrl+r重做。cw:删一个词并进入插入模式(change word),改参数值最常用。- 数字前缀:
5dd删 5 行,3yy复制 3 行。
典型改配置流程::set nu 显示行号 → 42G 跳到出错行 → cw 改掉参数 → Esc → :wq。
三个提升幸福感的组合技
注释/取消注释一段配置。 Ctrl+v 进入块可视模式,j 选中若干行,I(大写 i)输入 # 后按 Esc,选区每行行首都插入 #。删除注释则选中后按 x。
全文替换。 :%s/旧值/新值/g 回车,加 c 变确认模式(:%s/8080/80/gc),逐个确认避免误伤。
不退出 Vim 执行 shell 命令。 :!nginx -t 测试配置,看完输出回车回到编辑——改完 Nginx 配置立即验证,不用退出编辑器。
一份克制的 vimrc
服务器上不需要花哨插件,以下配置写入 ~/.vimrc 即可:
set number " 显示行号set relativenumber " 相对行号,配合 5j 这类跳转syntax on " 语法高亮set tabstop=4 " Tab 显示宽度set shiftwidth=4 " 缩进宽度set expandtab " Tab 转空格set ignorecase " 搜索忽略大小写set smartcase " 含大写时恢复精确匹配set incsearch " 边输入边高亮set hlsearch " 高亮搜索结果(:noh 取消)set cursorline " 高亮当前行保留原有缩进风格的注意事项:改 Python 或 YAML 时 expandtab 很重要,混用 Tab 和空格是常见的语法错误来源。
练习建议与常见疑问
- 要不要背命令表? 不用。先用
i、Esc、:wq、dd、/关键词活下来,用得多了自然扩展。 - Vim 教程哪里练? 终端输入
vimtutor,官方交互教程,约半小时走完一遍。 - vim 还是 nvim? 服务器上有什么用什么,本文命令两者通用。
- 编辑大文件卡? Vim 打开几百 MB 日志没问题,但语法高亮会变慢,可临时
:syntax off。
学会 Vim 的意义不在于炫技,而在于任何一台干净的服务器上,你都有一个可靠的编辑能力兜底。
延伸阅读
分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续阅读
换条路线
从其他文章中稳定抽取
最后更新于 ,距今已过 48 天
部分内容可能已过时