上一篇了介绍了 vim 的基础操作——打开、编辑、保存与退出,解决了“能修改文件”的核心需求。但在实际工作中,只掌握基础操作远远不够:修改配置文件时需要快速定位关键词、批量修改重复内容、一次性编辑多行文本,这些场景都需要 vim 的进阶功能来高效完成。
今天我们就聚焦 vim 最实用的三大进阶操作:搜索、替换、多行编辑。这三个功能是运维、开发日常使用 vim 的“效率神器”,学会它们,能让你从“会用 vim”升级为“用好 vim”,告别繁琐的手动操作,大幅提升文本编辑效率。
本篇全程实操、无废话、不踩坑,所有操作均在 Anolis OS 实测可用,沿用之前创建的 /tmp/test.txt 文件练习,新手跟着步骤做就能上手,同时会重点标注新手易踩的坑和实用技巧,兼顾专业性与易懂性。

在大文件(如日志、配置文件)中手动查找关键词,不仅耗时,还容易遗漏。vim 的搜索功能可以快速定位目标内容,支持精准搜索、模糊搜索、忽略大小写搜索,满足不同场景需求,是日常排查问题的核心技巧。
👉 操作格式(命令模式下):/关键词(斜杠 + 要搜索的关键词)
✅ 实操步骤:
vim /tmp/test.txt(默认进入命令模式);/vim(斜杠 + 关键词vim),按 Enter 键,光标会自动跳转到第一个匹配的关键词;n 键(小写n,next);N 键(大写N,反向查找);👉 新手避坑:搜索时关键词区分大小写,比如搜索“Vim”和“vim”是两个不同结果,若想忽略大小写,需添加额外参数(下文讲解)。
当需要搜索的关键词大小写不固定(如配置文件中的“Port”“port”),无需重复搜索,只需在搜索时添加 \c 参数,即可忽略大小写匹配。
👉 操作格式(命令模式下):/关键词\c
✅ 实操示例:
/vim\c,按 Enter 键;n 键依次跳转;:set ignorecase(关闭vim后失效);若想关闭,输入 :set noignorecase。进阶技巧:搭配 :set smartcase 使用,开启后,当搜索关键词包含大写字母时会区分大小写,全小写时则忽略大小写,更贴合日常使用习惯。当不确定关键词完整拼写,或需要匹配一类内容时,可使用通配符进行模糊搜索,最常用的是:
.*⚠️ 注意:* 不是“任意字符通配符”,若要匹配任意多个字符,应使用 .*(. 匹配任意单个字符,* 匹配前一个字符的0次或多次,组合后即匹配任意多个任意字符)。
👉 常用操作格式:
/关键.词. 匹配中间任意一个字符(如 /vim.操 可匹配“vim基础操作”“vim进阶操作”);/关键.*词.* 匹配中间任意多个字符(如 /vim.*作 可匹配“vim操作”“vim核心操作”“vim基础编辑操作”)。✅ 实操示例:在 test.txt 中输入 /文.*件,按 Enter 键,会匹配到“文件查看命令”“文本编辑”等包含“文”和“件”的内容,适合快速定位一类相关文本;这里的 .* 就是匹配“文”和“件”之间任意多个任意字符。
若光标正停留在某个词上,无需手动输入关键词,可快速搜索该词的所有匹配项,节省操作时间。
👉 操作:
* 键(星号):快速搜索该词的下一个匹配项;# 键(井号):快速搜索该词的上一个匹配项。👉 适用场景:查看配置文件中某个参数(如“port”“timeout”)的所有出现位置,无需手动输入,一键定位。
搜索核心口诀:/关键词找首次,n下N上,\c忽略大小写,*#快速匹配光标词
日常工作中,经常需要批量修改文件中的重复内容(如修改配置文件中的IP、替换关键词、统一格式),手动修改不仅耗时,还容易出错。vim 的替换功能可以实现“一键批量修改”,支持单条替换、全局替换、确认替换,灵活适配不同场景。
👉 核心操作格式(命令模式下,进入末行模式执行)::范围 s/旧关键词/新关键词/替换参数
关键说明:
g(global,全局替换)、c(confirm,确认替换)。👉 操作格式::s/旧关键词/新关键词(仅替换当前行的第一个匹配项)
👉 拓展格式::s/旧关键词/新关键词/g(替换当前行的所有匹配项)
✅ 实操示例(基于 test.txt):
:s/vim/VIM,按 Enter 键,仅替换当前行第一个“vim”为“VIM”;:s/vim/VIM/g,按 Enter 键,替换当前行所有“vim”为“VIM”。👉 操作格式::%s/旧关键词/新关键词/g(% 表示全文,g 表示全局)
✅ 实操示例:将 test.txt 中所有“vim”替换为“Vim”
:%s/vim/Vim/g,按 Enter 键;👉 新手避坑:全局替换前,建议先用搜索功能(/关键词)确认匹配内容,避免误替换;若替换错误,可输入:u(undo,撤销)恢复。
当不确定是否需要替换所有匹配项(如部分关键词需要保留),可使用确认替换,逐一向导式选择“替换/跳过/全部替换”,避免误操作。
👉 操作格式::%s/旧关键词/新关键词/gc(c 表示 confirm,确认)
✅ 实操示例:将 test.txt 中“文件”替换为“文档”,逐一向导确认
:%s/文件/文档/gc,按 Enter 键;replace with 文档 (y/n/a/q/l/^E/^Y)?;👉 适用场景:配置文件修改、日志内容替换,需要精准控制替换范围,避免误改关键内容。
若只需替换文件中某几行的内容,无需全局替换,可指定行区间进行替换。
👉 操作格式::起始行号,结束行号 s/旧关键词/新关键词/g
✅ 实操示例:将 test.txt 第5-10行的“操作”替换为“技巧”
:5,10 s/操作/技巧/g,按 Enter 键;当需要对多行文本执行相同操作(如批量添加注释、批量删除、批量插入内容),手动逐行操作效率极低。vim 的多行编辑功能可以实现“一次操作,批量生效”,核心是通过“可视化块选择”,选中多行后执行统一操作,是运维修改配置文件的高频技巧。
👉 核心前提:进入「可视化块模式」(命令模式下按 Ctrl + v,小写v是字符模式,大写V是行模式,Ctrl+v是块模式,多行编辑首选块模式)。
最常用场景:给配置文件多行内容添加注释(如 # 注释),无需逐行输入。
✅ 实操示例:给 test.txt 第6-10行添加 # 注释
Ctrl + v 进入可视化块模式,光标变为方块状;I 键(大写I,进入块插入模式),此时光标会跳转到选中区域的第一行开头;#(注释符号),此时仅第一行显示 #,无需担心;Esc 键,等待1秒,选中的所有行开头都会自动添加 #,批量注释完成。👉 反向操作:批量删除多行注释(#),步骤同上,选中 # 所在的块,按 x 键即可批量删除。
场景:删除文件中连续的多行内容(如无用的日志、重复的配置),比逐行删除高效得多。
✅ 方法1:可视化块删除(精准删除部分内容)
Ctrl + v 进入可视化块模式;x 键,选中的内容会被批量删除。✅ 方法2:行模式删除(删除整行)
V(大写V,进入行可视化模式);d 键(delete),选中的多行会被批量删除。👉 补充技巧:删除指定行区间(如第8-12行),无需选中,命令模式下输入 :8,12 d,按 Enter 键即可批量删除。
场景:将多行内容复制到文件的其他位置,避免重复输入,提升编辑效率。
✅ 实操步骤:
V(大写V,行可视化模式),选中需要复制的多行;y 键(yank,复制),选中的内容会被复制到vim剪贴板;p 键(paste,粘贴),复制的多行内容会粘贴到光标下方;按 P 键(大写P),粘贴到光标上方。👉 新手避坑:复制后若执行了其他编辑操作(如删除、修改),剪贴板内容会被覆盖,建议复制后立即粘贴,或使用寄存器保存(进阶内容,后续讲解)。
多行编辑核心避坑:进入可视化块模式后,若想取消选中,按 Esc 键即可;操作完成后,务必按 Esc 退回命令模式,避免误触其他操作。
原因1:关键词区分大小写(如搜索“Vim”,文件中是“vim”);
解决1:用 /关键词\c 忽略大小写搜索;
原因2:输入关键词时多输/少输空格(vim搜索会匹配空格);
解决2:核对关键词,确保无多余空格,或用模糊搜索(/关键*词)匹配。
解决:命令模式下按 u 键(undo),撤销上一步替换操作;若多次替换,可按Ctrl + r 恢复撤销的操作(redo)。
原因:误按了 v(字符模式)或其他键,未进入块模式;
解决:按 Esc 退回命令模式,重新按 Ctrl + v 进入块模式,再按箭头键选中多行。
原因:插入内容后,未按 Esc 键确认,直接退出了块模式;
解决:按 I 插入内容后,务必按 Esc 键,等待1秒,选中的所有行才会生效。
原因:文件中没有匹配的旧关键词,替换命令无法执行;
解决:先用搜索功能(/旧关键词)确认关键词是否存在,核对关键词拼写和大小写。
结合 /tmp/test.txt 文件,完成以下练习,快速掌握三大进阶操作,做到“搜索→替换→多行编辑”全流程贯通,建议练习2-3遍,形成肌肉记忆:
:u 撤销删除操作,验证内容恢复。提示:实操是掌握vim进阶操作的关键,每一步都要亲手执行,遇到报错不要慌,对照“常见问题”排查,多练几次就能熟练运用。
掌握本篇内容,你已经能熟练运用vim处理各类文本编辑需求,从“新手”升级为“高效使用者”,无论是日常运维还是简单开发,都能轻松应对!
文 / 零距技术仓记录每一次真实的折腾 (#^.^#)🚀 想看到更多实用折腾技巧?👉 先关注💬 评论区说说你的经历或想看的内容👍 点赞表示支持🔁 顺手分享给也在折腾的人,让大家都少踩坑 😎