在Vim中对事件进行计数而不标记缓冲区已更改

时间:2020-03-05 18:55:26  来源:igfitidea点击:

为了知道模式在当前缓冲区中存在多少次,我这样做:

:%s/pattern-here/pattern-here/g

它给出了模式出现的次数,但是显然很麻烦,并且具有设置"更改"状态的副作用。

有没有更优雅的计算方法?

解决方案

回答

为了避免替换,请将第二个模式留空,并添加n标志:

:%s/pattern-here//gn

这被描述为官方提示。

回答

:!cat %| grep -c "pattern"

这不是完全的vim命令,但是它将为我们提供vim所需的功能。
如果需要经常使用它,可以将其映射到命令。

回答

vimscript IndexedSearch增强了Vim搜索命令,以显示" M个匹配中的匹配N个"。