Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim 在ctrlp和x2B中使用ag;维姆_Vim_Ctrlp - Fatal编程技术网

Vim 在ctrlp和x2B中使用ag;维姆

Vim 在ctrlp和x2B中使用ag;维姆,vim,ctrlp,Vim,Ctrlp,我想将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/*,*/.

我想将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包含隐藏的文件,但这些文件是隐藏的。如果我在ag命令中添加
-u
,它会显示所有隐藏的文件,但不尊重wildignore或.gitignore。有可能使其尊重这些吗?

如果您通过
ctrlp\u user\u命令使用自定义查找程序
几个选项,包括
ctrlp\u show\u hidden
ctrlp\u custom\u ignore
和vim的
wildignore
模式,都不被ctrlp()使用

g:ctrlp\u show\u hidden

注意:使用定义的命令不适用 |g:正在使用ctrlp|U user|命令

g:ctrlp\u custom\u ignore

注#1:默认情况下| wildignore |和| g:ctrlp_custom|u ignore | only 当使用| globpath()|扫描文件时应用,因此这些选项 当使用| g:ctrlp_user|u command定义的命令 正在使用中

所以你只能任由你的搜索工具摆布,在本例中是ag。幸运的是,你可以做一些事情,让你的行为得到你想要的

要使隐藏的点文件显示,但仍尊重
忽略
文件,请使用ag的
--hidden
选项:

让g:ctrlp\u user\u命令='ag%s-l--nocolor--hidden-g'

现在,为了定义要忽略的模式,您可以使用ag自己的忽略文件。这可以是每个目录,也可以是ag将在每次运行时检查的全局目录。您可以将其放在您的home dir
~/.agignore

我知道让vims
wildignore
处理模式会很好,但是使用
.agignore
可以从cli使用ag时获得这些限制的好处。如果您想搜索所有文件,只需使用您提到的
ag-u
命令绕过任何
忽略
文件即可

最后,有一个字典格式可用于定义
g:ctrlp_user_命令
,其中包含一个
ignore
键,该键将使ctrlp使用
wildignore
模式。然而,我从未尝试过这一点,文档指出了潜在的性能影响。如果您不喜欢我提出的另一个解决方案(),可以尝试此方法

注#3:除非使用| Dictionary |格式且忽略了 定义并设置为1,| wildignore |和| g:ctrlp_custom_ignore| 使用这些自定义命令时,选项不适用。什么时候 不存在,“忽略”默认设置为0以保留性能 使用外部命令的优点


我的回答能解决你的问题吗?或者你需要更多的信息吗?当然需要!忘了将你的答案标记为已接受,对此表示抱歉。非常感谢你!