首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对Vim中发生的事件进行计数,而不标记缓冲区已更改

对Vim中发生的事件进行计数,而不标记缓冲区已更改
EN

Stack Overflow用户
提问于 2008-09-16 08:59:57
回答 6查看 36.6K关注 0票数 113

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

代码语言:javascript
复制
:%s/pattern-here/pattern-here/g

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

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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-09-16 09:18:02

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

代码语言:javascript
复制
:%s/pattern-here//gn

这被描述为an official tip

票数 169
EN

Stack Overflow用户

发布于 2013-02-01 05:49:40

代码语言:javascript
复制
:help count-items

在VIM 6.3中,你可以这样做。

代码语言:javascript
复制
:set report=0
:%s/your_word/&/g    # returns the count without substitution

在VIM 7.2中,你可以这样做:

代码语言:javascript
复制
:%s/your_word/&/gn   # returns the count, n flag avoids substitution
票数 9
EN

Stack Overflow用户

发布于 2008-09-16 09:24:29

代码语言:javascript
复制
:!cat %| grep -c "pattern"

这并不完全是vim命令,但它将为您提供vim所需的内容。

如果需要频繁使用,可以将其映射到命令。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档