为了知道当前缓冲区中存在多少次模式,我这样做:
:%s/pattern-here/pattern-here/g
它给出了模式的出现次数,但显然很麻烦,并且还具有设置“已更改”状态的副作用。
有没有更优雅的计数方式?
为了知道当前缓冲区中存在多少次模式,我这样做:
:%s/pattern-here/pattern-here/g
它给出了模式的出现次数,但显然很麻烦,并且还具有设置“已更改”状态的副作用。
有没有更优雅的计数方式?
:help count-items
在 VIM 6.3 中,您可以这样做。
:set report=0
:%s/your_word/&/g # returns the count without substitution
在 VIM 7.2 中,你会这样做:
:%s/your_word/&/gn # returns the count, n flag avoids substitution
:!cat %| grep -c "pattern"
它不完全是 vim 命令,但它会为您提供 vim 所需的内容。
如果需要经常使用,可以将其映射到命令中。
vimscript IndexedSearch增强了 Vim 搜索命令以显示“At match #N out of M matches”。
将光标放在要计数的单词上并执行以下操作。
:%s/<c-r><c-w>//gn
看:h c_ctrl-r_ctrl-w
vimgrep 是你的朋友:
vimgrep pattern %
显示:
(1 of 37)