Vim Ctrlp无法正确解析Ag(银色搜索) - 标注选项

时间:2014-06-29 18:45:04

标签: vim ctrlp

在命令行中使用ag时,如下所示:

$> ag . --ignore="*node_modules/*/node_modules" -l --nocolor -f -U -g ""

我能够避免在我的节点服务中搜索多个深度级别的任何node_modules目录,这是所需的行为。

但是,当我在我的vimrc中使用以下内容时,不会忽略多个深度级别的node_modules目录:

" Use The Silver Searcher https://github.com/ggreer/the_silver_searcher
if executable('ag')
  " Use Ag over Grep
  set grepprg=ag\ --nogroup\ --nocolor

  " Use ag in CtrlP for listing files. Lightning fast and respects .gitignore
  let g:ctrlp_user_command = 'ag %s --ignore="*node_modules/*/node_modules" -l --nocolor -f -U -g ""'
endif

如何设置agctrlp以正确忽略这些目录? 不确定在移植到vimrc时是否需要使用不同的语法(如正则表达式)或其他一些问题。

我没有把它放在野外的原因是我的.gitignore中忽略了node_modules,所以我使用-U选项忽略任何vcs文件(从而允许{{{ 1}}搜索node_modules) - 但是这个选项似乎也绕过了wildignore。

1 个答案:

答案 0 :(得分:6)

和我一样,我使用这两种工具,但我忽略文件夹的方式不同

对于 Ag ,我使用.agignore文件,它与.gitignore具有相同的sintax,就像它一样,它可以放在你的主文件夹或项目文件夹中。< / p>

不确定这是否能解决您使用 Ctrlp 的问题,无论如何它对我来说已经非常快了所以我使用正常的忽略变量,如下所示:

let g:ctrlp_custom_ignore = {
  \ 'dir':  '\v[\/](doc|tmp|node_modules)',
  \ 'file': '\v\.(exe|so|dll)$',
  \ }