Vim 搜索与正则速查
Vim 搜索与正则速查
🔹 基本搜索
/pattern→ 向前搜索?pattern→ 向后搜索n→ 重复上一次搜索(同方向)N→ 重复上一次搜索(反方向)
🔹 单字符搜索
f{char}→ 向右查找字符F{char}→ 向左查找字符t{char}→ 向右查找字符前一位T{char}→ 向左查找字符后一位;→ 重复上一次字符查找,→ 反向重复上一次字符查找
🔹 正则表达式基础
.→ 匹配任意单个字符*→ 匹配零个或多个字符\+→ 匹配一个或多个字符\?→ 匹配零个或一个字符\{n,m}→ 匹配 n 到 m 次
🔹 字符类与边界
[abc]→ 匹配a、b或c[^abc]→ 匹配除a、b、c之外的字符[0-9]→ 匹配数字\d→ 匹配数字(等价于[0-9])^→ 匹配行首$→ 匹配行尾\<→ 匹配单词开头\>→ 匹配单词结尾
🔹 分组与引用
\(...\)→ 分组\1,\2→ 引用分组内容- 示例:
→ 把
:%s/\(foo\)\(bar\)/\2\1/gfoobar替换成barfoo
🔹 大小写控制
\c→ 忽略大小写\C→ 强制区分大小写- 示例:
→ 搜索
/foo\cfoo,忽略大小写
🔹 搜索高亮与取消
:set hlsearch→ 开启搜索高亮:set nohlsearch→ 关闭搜索高亮:noh→ 临时取消高亮
🔹 实战案例
-
搜索所有 IP 地址
/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3} -
搜索并替换日期格式
:%s/\([0-9]\{4\}\)-\([0-9]\{2\}\)-\([0-9]\{2\}\)/\2\/\3\/\1/g→ 把
YYYY-MM-DD转换成MM/DD/YYYY -
搜索空行
/^$
🔹 总结
- 基本搜索:
/,?,n,N - 字符搜索:
f,F,t,T,;,, - 正则基础:
.*\+\?\{n,m} - 字符类与边界:
[ ],^,$,\<,\> - 分组与引用:
\(...\),\1,\2 - 大小写控制:
\c,\C - 高亮控制:
:set hlsearch,:noh