Ответ 1
Если вы используете пользовательский поиск через ctrlp_user_command
, несколько параметров, включая шаблоны ctrlp_show_hidden
ctrlp_custom_ignore
и vim wildignore
, не используются CtrlP (см. документацию).
г: ctrlp_show_hidden
...
Примечание: не применяется, когда команда, определенная с помощью | Г: ctrlp_user_command | используется.
г: ctrlp_custom_ignore
...
Примечание # 1: по умолчанию, | wildignore | и | g: ctrlp_custom_ignore | только применять, когда | globpath() | используется для сканирования файлов, поэтому эти параметры не применяются, когда команда, определенная с помощью | g: ctrlp_user_command | является используется.
Итак, вы остаетесь во власти вашего поискового инструмента, в данном случае, ag. К счастью, вы можете сделать пару вещей, которые должны дать вам поведение, которое вы хотите.
Чтобы ваши скрытые dotfiles появлялись, но все равно уважайте файлы ignore
, используйте параметр --hidden
для ag:
let g:ctrlp_user_command = 'ag %s -l --nocolor --hidden -g ""'
Теперь, чтобы определить шаблоны для игнорирования, вы можете использовать собственный файл игнорирования .agignore. Это может быть каталог или глобальный, который будет проверяться при каждом запуске. Вы помещаете это в свой домашний каталог ~/.agignore
.
Я понимаю, что может быть приятно, что vims wildignore
заботится о шаблонах, но с .agignore
вы получаете бонус этих ограничений при использовании ag из cli. Если вы хотите искать все файлы, просто используйте команду ag -u
, которую вы упомянули, чтобы обойти любые файлы ignore
.
В качестве окончательного лакомого кусочка есть формат словаря, который вы можете использовать для определения g:ctrlp_user_command
, который содержит ключ ignore
, который будет использовать шаблоны CtrlP wildignore
. Тем не менее, я никогда не пробовал это, и в документации указывается потенциальный удар производительности. Вы можете попробовать этот метод, если вам не нравится мое другое предлагаемое решение (см. Документацию).
Примечание № 3: если только Словарь | формат используется, а "игнорировать" задано и установлено в 1, | wildignore | и | g: ctrlp_custom_ignore | параметры не применяются, когда эти пользовательские команды используются. когда не присутствует, по умолчанию "ignore" устанавливается на 0, чтобы сохранить производительность преимущество использования внешних команд.