Як використовувати 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.