Utilizzare un comando di elenco personalizzato
Ctrlp ti permette di dirgli quale comando usare per ottenere un elenco di file nella cartella. Quindi, se volessi escludere qualsiasi nome beets.txt
, potresti fare:
let g:ctrlp_user_command = 'find %s -type f | grep -v "beets.txt"'
È globale, ma inizia a puntare verso la risposta: fornire il proprio comando di shell.
Ancora meglio, Ctrlp ti consente di fornire più comandi shell con marcatori, il che significa "se vedi questo marcatore nella directory principale, usa questo comando".
Ho trovato questo :help ctrlp
e modificato leggermente in base al commento dell'autore su un problema.
let g:ctrlp_user_command = {
\ 'types': {
\ 1: ['.git', 'cd %s && git ls-files --cached --exclude-standard --others'],
\ 2: ['.hg', 'hg --cwd %s locate -I .'],
\ },
\ 'fallback': 'find %s -type f'
\ }
Ciò significa: "Se vedi .git
nella cartella, usa git ls-files...
. Altrimenti, se vedi .hg
, usa hg --cwd...
, altrimenti usa un normale find
."
Quindi, per ignorare una cartella specifica in un progetto, escogitare un comando che ignorerà quella cartella, quindi posizionare un marcatore univoco in quel progetto per consentire a Ctrlp di utilizzare il comando speciale qui .
(Nel mio caso, volevo davvero ignorare i file presenti .gitignore
, quindi il git ls-files
comando sopra funziona per me.)