Użyj niestandardowego polecenia na liście
Ctrlp pozwala ci powiedzieć, jakiego polecenia użyć, aby uzyskać listę plików w folderze. Więc jeśli chcesz wykluczyć coś nazwanego beets.txt
, możesz:
let g:ctrlp_user_command = 'find %s -type f | grep -v "beets.txt"'
Jest to globalne, ale zaczyna wskazywać odpowiedź: podaj własne polecenie powłoki.
Co więcej, Ctrlp pozwala na dostarczanie wielu poleceń powłoki ze znacznikami, co oznacza „jeśli zobaczysz ten znacznik w katalogu głównym, użyj tego polecenia”.
Znalazłem to :help ctrlp
i nieznacznie zmodyfikowałem na podstawie komentarza autora do problemu.
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'
\ }
Oznacza to: „Jeśli widzisz .git
w folderze, użyj git ls-files...
. W przeciwnym razie, jeśli widzisz .hg
, użyj hg --cwd...
, w przeciwnym razie użyj zwykłego find
”.
Tak więc, aby zignorować określony folder w jednym projekcie, opracuj polecenie, które zignoruje ten folder, a następnie umieść unikalny znacznik w tym projekcie, aby umożliwić Ctrlp, że chcesz użyć tutaj specjalnego polecenia .
(W moim przypadku naprawdę chciałem zignorować pliki, które tam były .gitignore
, więc git ls-files
powyższe polecenie działa dla mnie).