Use un comando de listado personalizado
Ctrlp le permite decirle qué comando usar para obtener una lista de archivos en la carpeta. Entonces, si desea excluir cualquier cosa nombrada beets.txt, puede hacer:
let g:ctrlp_user_command = 'find %s -type f | grep -v "beets.txt"'
Eso es global, pero comienza a apuntar hacia la respuesta: proporcione su propio comando de shell.
Aún mejor, Ctrlp le permite suministrar múltiples comandos de shell con marcadores, lo que significa "si ve este marcador en el directorio raíz, use este comando".
Encontré esto :help ctrlpy lo modifiqué ligeramente en función del comentario del autor sobre 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'
\ }
Esto significa: "Si ve .giten la carpeta, use git ls-files.... De lo contrario, si ve .hg, use hg --cwd..., de lo contrario use un regular find".
Entonces, para ignorar una carpeta específica en un proyecto, diseñe un comando que ignore esa carpeta, luego coloque un marcador único en ese proyecto para permitir que Ctrlp desee usar su comando especial aquí .
(En mi caso, en realidad quería ignorar los archivos que estaban allí .gitignore, por lo que el git ls-filescomando anterior funciona para mí).