我今天尝试对项目的每个文件执行搜索。
我使用Ctrl-P并在类似的行上进行搜索:



但是结果搜索仅在先前打开的文件上。在这里,我仅打开main.php

您知道一种搜索所有文件而不必一个个打开它们的方法吗?

评论

这也是我想要的。如果您使用的是ack或ag,性能应该不是问题。另外,如果您使用的是neovim,它应该是异步的,因此也不应该有任何块。

最后,我将ag作为ctrlp命令使用:)

#1 楼

:CtrlPLine实际上应该在列出的缓冲区上工作。像:

:argadd **/*.php


,但出于性能原因,听起来并不是一个好主意。

使用:vimgrep:grep听起来要好得多对我来说:

:vim foo **/*.php
:cw


显然,您失去了CtrlP的“模糊性”,但是却获得了可靠性和灵活性。

参考:

:help :argadd
:help :vimgrep
:help :grep
:help :cwindow
:help quickfix


评论


CtrlP和vim-grep之间的主要区别在于CtrlP是交互式的。

–ideasman42
17年2月7日在0:00

#2 楼

您应该使用那些插件Sidesearch或fzf

都允许使用silversearch-ag

fzf允许在包含您的字符串的列出文件中搜索递归目录。 />

评论


嗨@MisterBanal,欢迎来到我们的网站!如果这些插件可以按OP要求与CtrlP进行接口连接,则应在答案中进行精确说明。如果可以连接它们,则应说明如何以及如果不能,则至少应提供一个如何使用它们的基本示例,否则您的答案并不能真正回答问题。 (您可以使用文本下方的“编辑”按钮更改答案)。

–statox♦
17-2-6在14:28