1

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

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

我有两个问题:

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

PS:这是我的ctrlp配置.vimrc

""" 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>
4

3 回答 3

1

答案1:

请在您的.vimrc

let g:ctrlp_custom_ignore = 'dist'

我把这条线放在最后一个位置.vimrc


答案 2:

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

有关详细信息,请访问雷格

于 2019-09-18T21:20:11.867 回答
1

不幸的是,Vim 的正则表达式与任何其他系统都不一样,因此使用起来既麻烦又痛苦。我不确定 CtrlP 的忽略是否支持\v,我不会在这里添加它。我也会删除前导斜杠。试试这个(并重新启动 Vim):

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

\v是“非常神奇”的开关,您应该始终使用它在 Vim 中进行搜索(同样,不确定 CtrlP 是否支持它),以使它们更有用:

nnoremap / /\v

它使特殊字符的+行为类似于普通的正则表达式字符,而不是定义不明确的 Vim 正则表达式字符。

于 2017-11-26T03:23:58.033 回答
0

如果您使用g:ctrlp_user_commandg:ctrlp_custom_ignore则将无法正常工作。rg 也可以忽略文件,只需将它们放入.gitignore, rg 将忽略.gitignore.

于 2020-08-23T07:23:03.403 回答