Utiliser une commande de liste personnalisée
Ctrlp vous permet de lui dire quelle commande utiliser pour obtenir une liste de fichiers dans le dossier. Donc, si vous vouliez exclure tout nom beets.txt
, vous pourriez faire:
let g:ctrlp_user_command = 'find %s -type f | grep -v "beets.txt"'
C'est global, mais cela commence à pointer vers la réponse: fournissez votre propre commande shell.
Encore mieux, Ctrlp vous permet de fournir plusieurs commandes shell avec des marqueurs, ce qui signifie "si vous voyez ce marqueur dans le répertoire racine, utilisez cette commande".
J'ai trouvé cela dans :help ctrlp
et modifié légèrement en fonction du commentaire de l'auteur sur un problème.
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'
\ }
Cela signifie: "Si vous voyez .git
dans le dossier, utilisez git ls-files...
. Sinon, si vous voyez .hg
, utilisez hg --cwd...
, sinon utilisez un régulier find
."
Donc, pour ignorer un dossier spécifique dans un projet, imaginez une commande qui ignorera ce dossier, puis placez un marqueur unique dans ce projet pour laisser Ctrlp que vous souhaitez utiliser votre commande spéciale ici .
(Dans mon cas, je voulais en fait ignorer les fichiers qui étaient dedans .gitignore
, donc la git ls-files
commande ci-dessus fonctionne pour moi.)