我想将 ag(银色搜索器)与 ctrlp 和 vim 一起使用。
我的 .vimrc 中有这个:
if executable("ag")
set grepprg=ag\ --nogroup\ --nocolor
let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""'
endif
let g:ctrlp_show_hidden = 1
set wildignore+=*/tmp/*,*.so,*.swp,*.zip,*/.tmp/*,*/.sass-cache/*,*/node_modules/*,*.keep,*.DS_Store,*/.git/*
我希望 ctrlp 包含隐藏文件,但这些文件是隐藏的。如果我添加-u
对于 ag 命令,它显示所有隐藏文件,但不尊重 wildignore 或 .gitignore。有可能让它尊重这些吗?
如果您通过以下方式使用自定义查找器ctrlp_user_command
几个选项,包括ctrlp_show_hidden
ctrlp_custom_ignore
和维姆的wildignore
模式,不被 CtrlP 使用(查看文档 https://github.com/kien/ctrlp.vim/blob/master/doc/ctrlp.txt).
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 https://github.com/ggreer/the_silver_searcher/wiki/Advanced-Usage。这可以是每个目录或全局目录,ag 将在每次运行时检查。你把它放在你的主目录中~/.agignore
.
我知道拥有 vims 会很好wildignore
照顾模式,但与.agignore
当你从 cli 使用 ag 时,你会得到这些限制的好处。如果您想搜索所有文件,只需使用ag -u
您提到的命令可以绕过任何ignore
files.
最后一点,有一种字典格式可以用来定义g:ctrlp_user_command
其中包含一个ignore
CtrlP 使用的键wildignore
模式。但是,我从未尝试过此操作,并且文档指出了潜在的性能影响。如果您不喜欢我提出的其他解决方案,您可以尝试此方法(查看文档 https://github.com/kien/ctrlp.vim/blob/master/doc/ctrlp.txt#L302-L352).
注意#3:除非 |Dictionary|使用格式并且“忽略”是
定义并设置为 1,|wildignore|和 |g:ctrlp_custom_ignore|
使用这些自定义命令时,选项不适用。什么时候
不存在,“ignore”默认设置为 0 以保留性能
使用外部命令的优点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)