Як використовувати 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 є інтерактивним .
ideaman42

1

Слід використовувати плагіни those Sidesearch або fzf

Обидва дозволяють здійснювати пошук у рекурсивних каталогах за допомогою silversearch-ag

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


1
Привіт @MisterBanal, ласкаво просимо на наш сайт! Ви повинні уточнити у своїй відповіді, чи можуть ці плагіни поєднатись із CtrlP, як просили ОП. Якщо вони можуть бути пов’язані між собою, ви повинні пояснити, як і якщо вони не можуть, ви, принаймні, наведіть основний приклад того, як їх використовувати, інакше ваша відповідь насправді не відповідає на питання. (Ви можете змінити свою відповідь кнопкою "редагувати" під текстом).
statox
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.