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,


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

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.