vim 搜索与替换
在 Vim 中搜索文本、正则匹配和批量替换
语法
/pattern 或 :%s/old/new/g
参数
| 参数 | 说明 | 示例 | 级别 |
|---|---|---|---|
/pattern |
向下搜索 | /function |
常用 |
?pattern |
向上搜索 | ?error |
常用 |
n/N |
下一个/上一个匹配 | n |
常用 |
:%s/old/new/g |
全文替换 | :%s/foo/bar/g |
常用 |
:%s/old/new/gc |
全文替换(逐个确认) | :%s/var/let/gc |
常用 |
*/# |
搜索光标下的单词(向下/向上) | * |
进阶 |
示例
搜索关键词
/TODO
按 n 跳到下一个匹配
全文替换
:%s/oldName/newName/g
所有行所有匹配都替换
指定范围替换
:10,20s/foo/bar/g
只替换第 10-20 行
正则搜索
/\d\+\.\d\+
搜索小数(如 3.14)
常见错误
E486: Pattern not found
检查拼写,注意大小写(用 /\cpattern 忽略大小写)
搜索高亮不消失
执行 :noh 或 :nohlsearch 清除高亮
技巧
- 搜索时 \c 忽略大小写,\C 强制区分
- :%s 的 % 表示全文,也可以用 :'<,'>s 替换选中区域
- set hlsearch 开启搜索高亮