大多数IDE的文本编辑器会在您搜索某个字符串时显示“这是匹配3的7”等信息。当您使用n
和N
移动到匹配项时,有没有办法让Vim显示此信息?
答案 0 :(得分:6)
From Show Count of Matches in Vim:
你想要的可能就是插件IndexedSearch
在执行/set
时,它将显示计数,并在命令行中显示搜索查询:
Match 5 of 81 /set/
使用您喜欢的插件管理器安装它。我推荐Vundle。
答案 1 :(得分:2)
最常见的方法是使用n
标志和替换命令。
:%s/set//gn
或通过:%s//gn
使用当前模式。这会为您提供一些您要求的反馈。
但我更喜欢使用:vimgrep
和quickfix列表。通过以下方式搜索您的模式:
:vimgrep/set/ %
这将搜索当前文件%
,并将匹配项添加到quickfix列表中。然后,您可以通过:cnext
或:cprevious
浏览quickfix列表。移动到quickfix列表后,文本将显示在底部,显示类似(1 of 5)
的内容。通过使用:copen
命令,将打开一个显示quickfix结果的窗口。通过在quickfix项目上按<cr>
移动到模式。
使用:vimgrep
有一些缺点。
:vimgrep
自vim 7.3起,不支持使用当前模式,即不使用:vimgrep// %
。相反,必须使用<c-r>/
来提取搜索模式寄存器并可能转义任何/
。 %
表示该文件必须存在,因此您无法搜索暂存缓冲区。:cnext
,:cprev
和朋友相比,简洁明了n
和N
。添加好的映射可以克服这个问题。我使用Tim Pope的优秀unimpaired插件中的[q
和]q
。如需更多帮助,请参阅:
:h :s_flags
:h :vimg
:h c_CTRL-R
:h quote/
:h quickfix
:h c_%