如果您通过ctrlp_user_command
多个选项使用自定义查找器,包括ctrlp_show_hidden
ctrlp_custom_ignore
和 vim 的wildignore
模式,则 CtrlP 不使用(请参阅文档)。
g:ctrlp_show_hidden
...
注意:当使用 |g:ctrlp_user_command| 定义的命令时不适用 正在使用。
g:ctrlp_custom_ignore
...
注意#1:默认情况下,|wildignore| 和 |g:ctrlp_custom_ignore| 仅适用于 |globpath()| 用于扫描文件,因此这些选项在使用 |g:ctrlp_user_command| 定义的命令时不适用 正在使用。
所以你只能任由你的搜索工具摆布,在这种情况下,就是 ag。幸运的是,您可以做几件事来获得您想要的行为。
要显示隐藏的点文件,但仍尊重ignore
文件,请使用--hidden
ag 选项:
let g:ctrlp_user_command = 'ag %s -l --nocolor --hidden -g ""'
现在要定义要忽略的模式,您可以使用 ag 自己的忽略文件.agignore。这可以是每个目录,也可以是 ag 在每次运行时检查的全局目录。你把它放在你的 home dir~/.agignore
中。
我知道让 vimwildignore
处理模式会很好,但是当.agignore
你在 cli 中使用 ag 时,你会得到这些限制的好处。如果您想搜索所有文件,只需使用ag -u
您提到的命令绕过任何ignore
文件。
作为最后的花絮,您可以使用字典格式来定义g:ctrlp_user_command
其中包含ignore
将使 CtrlP 使用wildignore
模式的键。但是,我从未尝试过此操作,并且文档指出了潜在的性能损失。如果您不喜欢我提出的其他解决方案,您可以尝试此方法(请参阅文档)。
注意#3:除非 |Dictionary| 使用格式并定义 'ignore' 并将其设置为 1,|wildignore| 和 |g:ctrlp_custom_ignore| 使用这些自定义命令时,选项不适用。当不存在时,'ignore' 默认设置为 0,以保留使用外部命令的性能优势。