Jak używać Ctrl-P do interaktywnego przeszukiwania zawartości wszystkich plików w projekcie?

15

Próbowałem dziś przeprowadzić wyszukiwanie wszystkich plików projektu. Używam Ctrl-P i szukam w takich liniach:

zrzut ekranu

Ale wynik wyszukiwania znajduje się tylko na uprzednio otwartym pliku. Tutaj tylko otwieram main.php.

Czy znasz sposób wyszukiwania wszystkich plików bez konieczności ich otwierania jeden po drugim?

Dzięki,

nobe4
źródło
1
Tego też chcę. Jeśli używasz potwierdzenia lub ag, wydajność nie powinna być problemem. Plus, jeśli używasz neovim, powinien on być asynchroniczny, więc nie powinno być żadnego bloku.
mhartington
Na koniec używam ag jako komendy ctrlp :)
nobe4

Odpowiedzi:

13

:CtrlPLine powinien działać na wymienionych buforach.

Jeśli absolutnie chcesz użyć tej funkcji w każdym pliku w projekcie, możesz dodać je do listy argumentów (a tym samym listy buforów) za pomocą czegoś takiego:

:argadd **/*.php

ale to nie brzmi jak bardzo dobry pomysł ze względu na wydajność.

Korzystanie :vimgreplub :grepbrzmi dla mnie znacznie lepiej:

:vim foo **/*.php
:cw

Oczywiście tracisz „niewyraźność” CtrlP, ale w zamian zyskujesz niezawodność i elastyczność.

Odniesienie:

:help :argadd
:help :vimgrep
:help :grep
:help :cwindow
:help quickfix
romainl
źródło
Kluczową różnicą między CtrlP a vim-grep jest to, że CtrlP jest interaktywny .
ideasman42
1

Powinieneś użyć tych wtyczek Sidesearch lub fzf

Oba pozwalają na wyszukiwanie w katalogach rekurencyjnych za pomocą silversearch-ag

fzf pozwala na wyszukiwanie wymienionych plików, które zawierają Twój ciąg.

MisterBanal
źródło
1
Cześć @MisterBanal, witamy na naszej stronie! Powinieneś sprecyzować w swojej odpowiedzi, czy te wtyczki mogą być połączone z CtrlP zgodnie z zapytaniem OP. Jeśli można je powiązać, należy wyjaśnić, w jaki sposób, a jeśli nie, należy przynajmniej podać podstawowy przykład, jak z nich korzystać, w przeciwnym razie odpowiedź tak naprawdę nie odpowiada na pytanie. (Możesz zmienić swoją odpowiedź przyciskiem „edytuj” pod tekstem).
statox