暗色模式

Vim 文本编辑器:从三种模式到批量修改配置文件

技术教程
2026-08-17
11
0
本文要点
  • Vim 的三种模式:普通模式插入模式命令行模式,一切操作都围绕模式切换展开
  • 常用移动与编辑:hjklgg/Gdd/yy/pu/Ctrl-r,让光标移动和文本编辑快起来
  • 查找与替换:/关键词 搜索、:%s/旧/新/g 全局替换,改配置文件的利器
  • Ex 模式批处理:vim -es 可无交互地批量改文件,适合在脚本里调用
  • 通过 .vimrc 开启行号、语法高亮等基础配置,提升日常编辑体验

为什么要学 Vim

服务器没有图形界面,改配置文件全靠命令行编辑器。Vim 是从 vi 进化而来的编辑器,几乎每个 Linux 发行版都预装或一键可装,掌握它是运维的基本功。

Vim 的核心设计理念是「模式」:在普通模式下用按键组合快速移动和编辑,需要输入文字时切换到插入模式。初学会觉得别扭,习惯后效率远高于鼠标编辑器。

本文在 Ubuntu 24.04 服务器(Vim 9.1)上实测演示,所有命令均可直接复制执行。

Vim 版本信息

Vim 的三种模式

Vim 不像普通编辑器那样打开就能打字,它把编辑动作拆分成三种模式:

模式作用进入方式返回普通模式
普通模式移动光标、删除复制粘贴启动后的默认状态
插入模式输入文字i / a / oEsc
命令行模式执行保存退出、查找替换等命令普通模式下按 : / ?Esc

打开 Vim 后默认处于普通模式,此时键盘上的字母不是用来打字的,而是触发各种命令。按 i 进入插入模式才能输入文字,按 Esc 回到普通模式。

打开文件

vim /etc/nginx/nginx.conf    # 打开已有文件
vim newfile.txt              # 打开不存在的新文件(保存后创建)
vim -R file.txt              # 只读方式打开

保存与退出

命令行模式下:

:w       " 保存
:wq      " 保存并退出
:q       " 退出(未保存会报错)
:q!      " 不保存强制退出
:x       " 保存并退出(相当于 :wq)

刚上手最常见的场景:打开了文件,改了几行,想退出却不知道命令。记住 Esc 后按 :wq 回车即可。

光标移动与文本编辑

普通模式下,hjkl 分别对应左、下、上、右(这样设计是为了手不离键盘主区)。更大的范围移动用下面这些:

命令作用
hjkl左 / 下 / 上 / 右
w / b向后 / 向前跳一个单词
0 / $跳到行首 / 行尾
gg / G跳到文件首行 / 末行
:行号跳到指定行
Ctrl-f / Ctrl-b向下 / 向上翻页

编辑操作(都在普通模式下执行):

命令作用
i / a在光标前 / 后进入插入模式
o / O在下方 / 上方新开一行并进入插入模式
x删除光标处字符
dd删除整行
yy复制整行
p在光标下方粘贴
u撤销
Ctrl-r重做
v进入可视模式,配合方向键选中文本

数字可以和命令组合,比如 5dd 一次删除 5 行,3yy 复制 3 行,这是 Vim 的高效之处。

查找与替换

在配置文件中快速定位关键词,用普通模式按 / 进入命令行模式输入关键词回车:

/nginx

回车后高亮匹配项,按 n 跳到下一个,按 N 跳到上一个。

替换是改配置最常用的操作。命令行模式:

:s/old/new/         " 替换当前行第一个匹配
:s/old/new/g        " 替换当前行所有匹配
:%s/old/new/g       " 替换全文所有匹配(最常用)
:%s/old/new/gc      " 全文替换,每次询问确认

:s 前面的 % 表示作用于所有行;结尾的 g 表示一行内全部替换;c 表示替换前逐个确认,安全起见修改重要配置时建议加 c

Ex 模式批量修改文件

前面的替换都要在交互界面里输入。Vim 还提供 Ex 模式(-es),可以在脚本里无交互地批量改文件,非常适合批量处理多个配置。

比如把 app.conf 里的端口 80 改成 8080

vim -es -c '%s/80/8080/g' -c 'wq' app.conf

-es 以静默 Ex 模式启动,-c 指定启动后执行的命令,多个 -c 依次执行。上面的命令相当于:打开 app.conf,全文把 80 替换成 8080,保存退出。

Vim Ex 模式批量替换

配合 find 可以批量处理一批文件:

find /etc/nginx/conf.d/ -name '*.conf' -exec \
  vim -es -c '%s/80/8080/g' -c 'wq' {} \;

用 .vimrc 做基础配置

Vim 默认外观朴素,把常用设置写进 ~/.vimrc,每次启动自动生效:

set number          " 显示行号
syntax on           " 语法高亮
set tabstop=4       " Tab 显示为 4 个空格宽度
set shiftwidth=4    " 缩进宽度
set expandtab       " Tab 转成空格
set autoindent      " 自动缩进
set hlsearch        " 搜索高亮
set incsearch       " 输入时即开始搜索
set ignorecase      " 搜索忽略大小写
set smartcase       " 有大小写时则区分

编辑后重新打开 Vim 或执行 :source ~/.vimrc 立即生效。强烈建议第一行先加 set number,行号在排查配置、定位报错行时非常有用。

常用组合速查

场景操作
快速跳到第 N 行:NNG
删除 5 行5dd
复制 3 行并粘贴3yy 然后 p
全文替换 IP:%s/192.168.0.0/10.0.0.0/g
撤销到上一步u
打开第二个文件:e /path/file
保存并退出:wq
放弃修改退出:q!

总结

Vim 的上手曲线主要在模式切换:普通模式负责移动和编辑,插入模式负责打字,命令行模式负责保存退出和查找替换。每天改配置文件,先用熟 hjkl 移动、i 插入、dd 删行、:wq 退出,再逐步学习查找替换和 Ex 模式批处理,就能覆盖绝大多数运维场景。

想深入可以运行 vimtutor 交互式教程,或参考 Vim 官方文档Vim 速查表

发表评论

暂无评论,快来抢沙发吧!