Use um comando de listagem personalizada
Ctrlp permite que você diga qual comando usar para obter uma lista de arquivos na pasta. Então, se você quisesse excluir qualquer coisa chamada beets.txt
, poderia fazer:
let g:ctrlp_user_command = 'find %s -type f | grep -v "beets.txt"'
Isso é global, mas começa a apontar para a resposta: forneça seu próprio comando de shell.
Melhor ainda, Ctrlp permite que você forneça vários comandos de shell com marcadores, o que significa "se você vir este marcador no diretório raiz, use este comando".
Encontrei isso em :help ctrlp
e modifiquei um pouco com base no comentário do autor sobre um 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'
\ }
Isso significa: "Se você vir .git
na pasta, use git ls-files...
. Caso contrário, se vir .hg
, use hg --cwd...
, caso contrário, use um find
normal".
Portanto, para ignorar uma pasta específica em um projeto, crie um comando que ignore essa pasta e, em seguida, insira um marcador exclusivo nesse projeto para permitir que o Ctrlp deseje usar seu comando especial aqui .
(No meu caso, eu realmente queria ignorar arquivos que estavam em .gitignore
, então o comando git ls-files
acima funciona para mim.)