vim:匹配单词不以$开头

时间:2014-02-05 16:04:24

标签: regex vim

在vim中我想搜索一个不以$开头的单词“var”。

我试过这个,但它只匹配“$ var”中的“var”我想只匹配“var”,如果它不以$开头:

/\$\@!\(\var\)

我想我需要做一些事情,如果$不是立即在单词“var”的左边,因为单词边界不包括$ right?

2 个答案:

答案 0 :(得分:3)

这就是你想要的

/[^$]\zsvar

如果你喜欢负面的后卫:

/\$\@<!var

:h \zs
:h \@<!

会给你详细的解释。

答案 1 :(得分:2)

@ Kent的答案中的两个解决方案并不等同。试试这个示例文本:

var
$var
foo var
foo $var

我建议使用@ Kent的第二个解决方案,尽管你不需要逃避$

/$\@<!var

@Kent已经为您提供了回答一半后续问题的链接(在评论中)。对于另一半,请阅读

:help /[]