981 字
5 分钟
Vim 模式编辑入门:从手足无措到肌肉记忆

几乎每个 Linux 用户都经历过「误闯进 Vim 然后不知道怎么退出」的时刻。会一点 Vim 的实际价值很朴素:SSH 到服务器上改配置时,它是几乎必定存在的编辑器。本文目标是让你在服务器上高效完成「打开 → 定位 → 修改 → 保存退出」,而不是成为 Vim 玩家。

为什么是「模式」#

普通编辑器里,键盘的每个键都用来输入字符;Vim 把键盘复用了:普通模式下按键是命令(删除、跳转、复制),插入模式下按键才是输入文本,可视模式用来选区,命令行模式用来执行保存、查找等动作。

刚接触时最大的混乱来源是「不知道自己处于哪个模式」。两条救命规则:

  1. 迷路了就按 Esc,连按几下一定回到普通模式;
  2. 普通模式下输入 :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 的意义不在于炫技,而在于任何一台干净的服务器上,你都有一个可靠的编辑能力兜底。

延伸阅读#

Vim 模式编辑入门:从手足无措到肌肉记忆
https://meow.us.kg/posts/vim-modal-editing-guide/
作者
もゆちゃん
发布于
2026-09-04
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取