如何使用Ctrl-P交互式搜索项目中所有文件的文件内容?


15

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

屏幕截图

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

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

谢谢,


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

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

Answers:


13

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

如果您绝对想在项目中的每个文件上使用该功能,则可以将它们添加到参数列表(进而是缓冲区列表)中,如下所示:

:argadd **/*.php

但是,出于性能方面的考虑,这听起来并不是一个好主意。

使用:vimgrep:grep听起来好多了:

:vim foo **/*.php
:cw

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

参考:

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

CtrlP和vim-grep之间的主要区别在于CtrlP是Interactive
ideaman42 '17

1

您应该使用那些插件Sidesearchfzf

两者都允许使用silversearch-ag在递归目录中搜索

fzf允许搜索列出的包含您的字符串的文件。


1
嗨@MisterBanal,欢迎来到我们的网站!如果这些插件可以按OP要求与CtrlP进行接口连接,则应在答案中进行精确说明。如果可以连接它们,则应解释如何以及如果不能,则至少应提供一个如何使用它们的基本示例,否则您的答案并不能真正回答问题。(您可以使用文本下方的“编辑”按钮更改答案)。
statox
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.