我似乎想起了一个vim插件,它可以让您基本上执行“:g/pattern/p”,然后提示您选择一个。有谁知道这个插件?或者它是一个内置函数?Vim:查看页面上的所有实例并选择一个
基本上,我想执行一次搜索,查看当前页面上的所有实例(甚至打开缓冲区),然后能够选择要去哪个实例。
谢谢!
编辑:
我希望它居然拿我行号的时候我让我选择,我想这是一个相当简单的解决方案。我很确定我已经看到了一个插件,但我不记得它是什么。有什么想法吗?
PS。谢谢所有正在回答的人。他们是很好的答案。
我似乎想起了一个vim插件,它可以让您基本上执行“:g/pattern/p”,然后提示您选择一个。有谁知道这个插件?或者它是一个内置函数?Vim:查看页面上的所有实例并选择一个
基本上,我想执行一次搜索,查看当前页面上的所有实例(甚至打开缓冲区),然后能够选择要去哪个实例。
谢谢!
编辑:
我希望它居然拿我行号的时候我让我选择,我想这是一个相当简单的解决方案。我很确定我已经看到了一个插件,但我不记得它是什么。有什么想法吗?
PS。谢谢所有正在回答的人。他们是很好的答案。
您可以使用:vim[grep]
或:gr[ep]
。
:vim foo % | cw
见:help quickfix
。
如果你想要一个插件,你必须搜索vim.org。
这可能会让你关闭。它不是一个交互式菜单,但它告诉你的行号的比赛
:g/<regex>/#
的#
告诉全球打印的行号。看看:h :number
(#
是:number
的同义词)
+1这是我会回答的... –
它实际上显示了没有#的行号。我想要的是我可以选择的有序选择。我知道有一个插件会提示你选择,我只是不记得它是什么... –
@MrA矿不显示行号。我猜你已经在你的vimrc中有':set number',这也似乎告诉你行号 – FDinoff
:g/regex/p
:g
执行:p
默认情况下,因此它可以被忽略;尾随斜线也可以删除:
:g/regex
注意:g
跳转到该文件中最后出现的,所以你就可以执行N/
(正常模式),跳转到第N次出现。或者,如果有多场比赛,而且你不想指望你想要哪一场,那么你至少可以用LG
或Lgg
或:L
跳到它的这一行。
如果你不使用:set number
但想在:p
输出线号,追加nu[mber]
或#
为@FDinoff提示:
:g/regex/nu
:g/regex/#
你可以通过:vimgrep
命令
:vimgrep/regex/ %
%
代表当前缓冲区的文件名填充结果到quickfix
窗口。注意:缓冲区必须是文件而不是临时缓冲区。
然后使用quickfix
命令(如:cnext
和)来移动列表。或者通过:copen
打开清单并按<cr>
跳到比赛。
可以:vimgrep
任意数量的文件:
*.c
文件如:vimgrep/regex/ *.c
。**
可搜索深层目录,例如:vimgrep/regex/ **/*.c
。您还可以通过:vimgrep/regex/ ##
将vimgrep
与参数列表一起使用。
如需更多帮助,请参见:
:h :vimgrep
:h quickfix
:h c_%
:h arglist
可以确认一个又一个变化中的所有打开的缓冲区:
:bufdo %s;<pattern>;<replace>;c | update
的:bufdo
经过所有缓冲区。 c
是确认所有更改的标志。 update
写入当前允许进入下一个缓冲区的缓冲区。
这似乎没有涉及到这个问题呢? –
我很确定我看过一个插件提出这个列表,然后让你做出选择,并把你带到有问题的路线。我似乎无法找到它或记住其他任何事情。 –
为什么你需要一个插件?你可以用内置的命令来完成你所要求的任何事情。一旦打开quickfix列表,您可以导航它,并在结果上点击“”以跳转到该列表,等等。阅读我提供给你的文档部分。 –
romainl