忽略ctrlp.vim中的自定义目录

时间:2017-11-26 03:12:26

标签: vim ctrlp

我想忽略ctrlp.vimdist.git目录。我的.vimrc配置如下:

let g:ctrlp_custom_ignore = {
  \ 'dir': '\v[\/](\.git|dist)$'
}

我有两个问题:

  • 它不会忽略dist目录。
  • 什么是\v的意思 声明?

PS:这是我对.vimrc

的ctrlp配置
""" ctrlp
   let g:ctrlp_use_caching = 1
   let g:ctrlp_clear_cache_on_exit = 0
   let g:ctrlp_cache_dir = '$HOME/.vim/cache/ctrlp'
   let g:ctrlp_max_files = 1000
   let g:ctrlp_max_history = &history
   let g:ctrlp_max_depth = 10
   let g:ctrlp_user_command = [
         \ '.git', 'cd %s && git ls-files . -co --exclude-standard',
         \ 'rg %s --files --color=never --glob ""',
         \ 'find %s -type f'
         \ ]
   let g:ctrlp_custom_ignore = {
     \ 'dir': '\v[\/](\.git\|dist)$',
     \ 'file': '\v\.(exe|so|dll)$',
   \ }
   "let g:ctrlp_custom_ignore = 'dist'
   " let g:ctrlp_user_command = ['rg --files']
   let g:ctrlp_working_path_mode = 'ra'
   let g:ctrlp_reuse_window = 'startify'
map ff :CtrlP<cr>

3 个答案:

答案 0 :(得分:1)

遗憾的是,Vim的正则表达式与其他系统不同,这使得它们使用起来既麻烦又痛苦。我不确定CtrlP的忽略是否支持\v,我不会在这里添加它。我也会删除主要的斜线。试试这个(并重新启动Vim):

let g:ctrlp_custom_ignore = {
    \ 'dir': '\.git\|dist$'
\ }

\v是“非常神奇”的开关,您应始终用于在Vim中搜索(再次,不确定CtrlP是否支持它),以使它们更有用:< / p>

nnoremap / /\v

它使像+这样的特殊字符表现得像普通的正则表达式字符,而不是定义不当的Vim正则表达式字符。

答案 1 :(得分:0)

答案1:

请在您的.vimrc

中添加以下行
let g:ctrlp_custom_ignore = 'dist'

我将此行放在.vimrc的最后位置


答案2:

\v搜索“ 一个垂直空格字符:换行符,回车符,垂直制表符,换页符,段落或行分隔符”。

有关详细信息,请访问rexegg

答案 2 :(得分:0)

如果您使用g:ctrlp_user_command,则g:ctrlp_custom_ignore将不起作用。 rg也可以忽略文件,只需将它们放入.gitignore中,rg就会忽略.gitignore中的任何文件和目录。