我知道这有效:
:%s/<string>//gn
Run Code Online (Sandbox Code Playgroud)
但是用替换命令来计数似乎有点奇怪,而不是全局..
我以前为此使用了一个插件。vim-indexed-search在命令行中给你一条消息,例如:
2 of 32 matches
Run Code Online (Sandbox Code Playgroud)
对于使用搜索 /
好像没有别的办法了。事实上,这是 Vim 文档中描述的官方方式。
请参阅标题为:在 Vim 中计数出现次数而不标记缓冲区已更改以及Vim 文档中的此段落的SO 问题。
或者,也有这个 SO 问题,标题为:Search for string and get count in vi editor,但请注意,此方法只会计算行数而不是实际匹配项,因此如果每行有多个匹配项,则不会得到正确的计数。