当前位置:  开发笔记 > 开发工具 > 正文

计算Vim中的出现次数而不标记缓冲区已更改

如何解决《计算Vim中的出现次数而不标记缓冲区已更改》经验,为你挑选了3个好方法。

为了知道当前缓冲区中存在模式的次数,我做:

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

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

是否有更优雅的方式来计算?



1> Bruno De Fra..:

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

:%s/pattern-here//gn

这被描述为官方提示.


如果您已经使用/执行了搜索,则它变为:%s /// gn
更加繁琐,但至少现在官方认为没有优雅的方式......
我发现以下映射非常有用:`nnoremap n:%s /// gn `来计算上次搜索的出现次数

2> konyak..:
: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



3> Ilya..:
:!cat %| grep -c "pattern"

它不完全是vim命令,但它会从vim中为您提供所需的内容.
如果需要经常使用它,可以将其映射到命令.


更简单的`:!grep -c"pattern"%`
推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有