English 中文(简体)
在不标记缓冲区已更改的情况下计数Vim中的出现次数
原标题:
  • 时间:2008-09-16 08:59:57
  •  标签:

为了知道一个模式在当前缓冲区中存在多少次,我需要:

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

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

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

最佳回答

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

:%s/pattern-here//gn

这被描述为官方提示

问题回答
: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"

It s not exactly vim command, but it will give you what you need from vim.
You can map it to the command if you need to use it frequently.

vimscriptIndexedSearch增强了Vim搜索命令,以显示“At match#N of M matches”。

将光标放在要计数的单词上,然后执行以下操作。

:%s/<c-r><c-w>//gn

请参见:h c_ctrl-r-ctrl-w

vimgrep是你的朋友:

vimgrep pattern %

显示:

(1 of 37)




相关问题
热门标签