Как использовать Ctrl-P для интерактивного поиска содержимого файла для всех файлов в проекте?


15

Сегодня я попытался выполнить поиск по всем файлам проекта. Я использую Ctrl-P и ищу строки следующим образом:

Скриншот

Но результат поиска есть только по ранее открытому файлу. Здесь я открываю только main.php.

Вы знаете способ поиска по всем файлам без необходимости открывать их один за другим?

Благодарность,


1
Это то, чего я тоже хочу. Если вы используете ack или ag, производительность не должна быть проблемой. Кроме того, если вы используете neovim, он должен быть асинхронным, поэтому не должно быть никаких блоков.
Mhartington

Наконец я использую ag как команду ctrlp :)
nobe4

Ответы:


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 является интерактивным .
ideasman42

1

Вы должны использовать плагины thoses Sidesearch или fzf

Оба позволяют искать в рекурсивных каталогах, используя silversearch-ag

fzf позволяет осуществлять поиск по перечисленным файлам, в которые входит ваша строка.


1
Привет @MisterBanal, добро пожаловать на наш сайт! Вы должны уточнить в своем ответе, могут ли эти плагины взаимодействовать с CtrlP, как было задано OP. Если они могут быть связаны, вы должны объяснить, как и если они не могут, вы должны, по крайней мере, дать базовый пример того, как их использовать, иначе ваш ответ на самом деле не отвечает на вопрос. (Вы можете изменить свой ответ с помощью кнопки «Изменить» под текстом).
statox
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.