58

我如何像grep -w在 Vim 中那样进行全词搜索,它只返回搜索字符串是整个词而不是更大词的一部分的行?

grep -w:仅选择那些包含构成整个单词的匹配项的行。

这可以在 Vim 中完成吗?

4

4 回答 4

71
\<bar\>

匹配bar但既不匹配foobar也不匹配。barbazfoobarbaz

在替换中像这样使用它:

:s/\<bar\>/baz

像这样使用它来列出包含整个单词的所有行bar

:g/\<bar\>

:h pattern是一本好书。

于 2013-03-08T06:45:30.803 回答
27

你想要/\<yourword\>

如果您的光标在一个单词上,那么您可以按*,它将对光标下的单词进行仅单词搜索。

于 2013-03-08T06:47:07.073 回答
12

可以使用'very-magic' \v来简化命令:

/\v<yourword>

如评论中所述,\v表示所有非字母数字字符都具有特殊含义,因此只需输入<>不是使用\<and转义它们\>

于 2017-06-01T01:04:31.180 回答
0
map w /\v<><Left>

此映射使用魔术,并在“<”和“>”对之间添加了移动光标位置。只要按“w”,您就可以立即输入您的单词,然后输入执行全词搜索。

当然,您可以选择自己喜欢的字母来代替“w”进行映射。

于 2022-02-23T18:02:59.460 回答