Vim 搜索与匹配技巧全解析
正则表达式开关
在进行搜索时,创建正则表达式是一项常见需求。在非常非魔术搜索(very nomagic search)中创建正则表达式虽可行,但由于要对每个符号进行转义,操作起来比较麻烦。一般规则是:若要搜索正则表达式,使用 \v 模式开关;若要搜索逐字文本,使用 \V 字面开关。
使用括号捕获子匹配
在指定模式时,我们可以捕获子匹配并在其他地方引用它们。这个特性在与替换命令结合使用时特别有用,也可用于定义单词重复的模式。
例如,有这样一段文本:
I love Paris in the
the springtime.
很难一眼看出其中的语法错误 “the the”,这是因为大脑产生了一种词汇错觉。可以使用以下正则表达式来匹配重复的单词:
/\v<(\w+)\_s+\1>
在上述文本中搜索该模式,“the the” 会被高亮显示。将两行文本合并(使用 vipJ 命令)后,该模式依然能匹配。而且,这个模式不仅能匹配 “the the”,还适用于任何重复的单词对。
这个正则表达式的工作原理在于 () 和 \1 的组合。括号内匹配的任何内容会自动分配到一个临时存储区,我们可以用 \1
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



