Come usare Ctrl-P per cercare in modo interattivo il contenuto dei file per tutti i file in un progetto?


15

Ho provato oggi a eseguire una ricerca su tutti i file di un progetto. Uso Ctrl-P e cerco su righe in questo modo:

immagine dello schermo

Ma il risultato della ricerca è solo sul file precedentemente aperto. Qui apro solo main.php.

Conosci un modo per cercare su tutti i file senza doverli aprire uno per uno?

Grazie,


1
Anche questo è qualcosa che voglio. Se usi ack o ag, le prestazioni non dovrebbero essere un problema. Inoltre, se stai usando Neovim, dovrebbe essere asincrono, quindi non dovrebbe esserci alcun blocco.
mhartington,

Finalmente uso ag come comando ctrlp :)
nobe4

Risposte:


13

:CtrlPLine dovrebbe funzionare sui buffer elencati.

Se vuoi assolutamente usare quella funzione su ogni file nel tuo progetto, puoi aggiungerli all'elenco degli argomenti (e quindi all'elenco dei buffer) con qualcosa del tipo:

:argadd **/*.php

ma non sembra un'ottima idea per motivi di performance.

Usando :vimgrepo :grepsuona molto meglio per me:

:vim foo **/*.php
:cw

Perdi la "confusione" di CtrlP, ovviamente, ma in cambio ottieni affidabilità e flessibilità.

Riferimento:

:help :argadd
:help :vimgrep
:help :grep
:help :cwindow
:help quickfix

Una differenza chiave tra CtrlP e vim-grep è che CtrlP è interattivo .
ideasman42

1

Dovresti usare questi plugin Sidesearch o fzf

Entrambi consentono di effettuare ricerche in directory ricorsive utilizzando silversearch-ag

fzf permette di cercare i file elencati che includono la tua stringa.


1
Ciao @MisterBanal, benvenuto sul nostro sito! Dovresti specificare nella tua risposta se questi plugin possono essere interfacciati con CtrlP come richiesto da OP. Se possono essere interfacciati, dovresti spiegare come e se non possono, dovresti almeno dare un esempio di base su come usarli, altrimenti la tua risposta non risponde realmente alla domanda. (Puoi cambiare la tua risposta con il pulsante "modifica" sotto il testo).
statox
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.