Використовуйте власну команду лістингу
Ctrlp дозволяє вам сказати, яку команду використовувати для отримання списку файлів у папці. Тож якщо ви хочете виключити все, що називається beets.txt
, ви можете зробити:
let g:ctrlp_user_command = 'find %s -type f | grep -v "beets.txt"'
Це глобально, але воно починає вказувати на відповідь: надайте власну команду оболонки.
Ще краще, Ctrlp дозволяє постачати кілька команд оболонки маркерами, тобто "якщо ви бачите цей маркер у кореневій директорії, використовуйте цю команду."
Я знайшов це :help ctrlp
і трохи змінив, спираючись на коментар автора до проблеми.
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'
\ }
Це означає: "Якщо ви бачите .git
в папці, використовуйте git ls-files...
. В іншому випадку, якщо ви бачите .hg
, використовуєте hg --cwd...
, інакше використовуйте звичайну find
."
Отже, щоб ігнорувати конкретну папку в одному проекті, придумайте команду, яка буде ігнорувати цю папку, а потім розмістіть у цьому проекті унікальний маркер, щоб дозволити Ctrlp, що ви хочете використовувати тут свою спеціальну команду .
(У моєму випадку я насправді хотів ігнорувати файли, які були .gitignore
, тому git ls-files
команда вище працює для мене.)