有没有办法使用 :g 计算 Vim 中的匹配数?

som*_*me1 11 vim

我知道这有效:

:%s/<string>//gn
Run Code Online (Sandbox Code Playgroud)

但是用替换命令来计数似乎有点奇怪,而不是全局..

Kei*_*ley 9

我以前为此使用了一个插件。vim-indexed-search在命令行中给你一条消息,例如:

2 of 32 matches
Run Code Online (Sandbox Code Playgroud)

对于使用搜索 /


Jos*_* R. 7

好像没有别的办法了。事实上,这是 Vim 文档中描述的官方方式。

请参阅标题为:在 Vim 中计数出现次数而不标记缓冲区已更改以及Vim 文档中的此段落的SO 问题。

或者,也有这个 SO 问题,标题为:Search for string and get count in vi editor,但请注意,此方法只会计算行数而不是实际匹配项,因此如果每行有多个匹配项,则不会得到正确的计数。