Vim中查找替换需掌握交互式查找(/、?)和批量替换(:s)两大命令体系:/keyword向下查、?keyword向上查,n/N跳转;:s命令支持行内、全文、选区及带标志(g/c/i)的精准替换,注意元字符转义与分隔符灵活选用。

在 Linux 的 Vim 中查找与替换关键词,核心是掌握两个命令体系:一个是交互式查找(/ 和 ?),另一个是批量替换(:s 命令)。操作不难,但细节决定效率和准确性。
基础查找:方向明确,跳转快捷
进入 Vim 后处于普通模式(按 Esc 确保),直接输入:
- /keyword —— 从当前光标位置向下查找 keyword,回车后高亮首个匹配项,按 n 跳到下一个,N 返回上一个;
- ?keyword —— 向上查找,逻辑一致;
- 若没看到高亮,执行 :set hlsearch 开启搜索高亮;想永久生效,把这行加进 ~/.vimrc;
- 默认区分大小写,如需忽略,可加 \c(如 /error\c)或全局设 :set ignorecase。
精准替换:范围+标志,一步到位
替换必须在底行模式(按 : 进入)下执行,语法为::[range]s/pattern/replacement/[flags]:
- :s/old/new/ —— 替换当前行第一个匹配;
- :s/old/new/g —— 替换当前行所有匹配;
- :%s/old/new/g —— 全文件替换(% 表示 1,$);
- :10,20s/old/new/gc —— 仅第 10–20 行,且每处替换前确认(c 标志);
- 想忽略大小写?加 i 标志::%s/OLD/new/gi。
特殊字符处理:避开转义陷阱
当关键词含 /、&、.、* 等正则元字符或路径分隔符时:
- 用其他符号作分隔符更清爽,比如 :s#https://a.com#http://b.com#g,斜杠不用转义;
- 替换内容中想字面输出 &,写成 \&;想引用匹配全文,用 &;想引用捕获组,用 \1、\2(需配合 \( \));
- 点号 .、星号 * 在 pattern 中默认有正则含义,要匹配字面意义,加反斜杠:\.、\*。
选区替换:只动你框住的部分
先用 v(字符)、V(行)或 Ctrl+v(块)选中目标区域,然后:
- 按 :,Vim 自动补出 :'<,'>(表示选区范围);
- 接着输入 s/old/new/g,回车即完成选区内替换;
- 别在可视模式下直接敲 :s——它不会自动限定范围,容易误改整行。


















