在不设置`g:ctrlp_extensions`的情况下扩展ctrlp

时间:2016-04-27 13:38:32

标签: vim ctrlp

我正在尝试编写自己的CtrlP扩展程序。

document表明,我们必须设置g:ctrlp_extensions,以使我们的扩展能够正常运作。

let g:ctrlp_extensions = ['extensionname']

但似乎这两个扩展名:ctrlp-funkyctrlp-extensions.vim仍然可以在不设置g:ctrlp_extensions的情况下工作(我无法通过使用{{在这两个扩展名的源文件中找到此变量1}})。

所以我的问题是:

  1. 我们可以在不设置grep -rn "g:ctrlp_extensions" *
  2. 的情况下扩展CtrlP
  3. 如果是的话,我们怎么做呢

1 个答案:

答案 0 :(得分:1)

在我仔细阅读代码之后,我发现我需要为此目的修改g:ctrlp_ext_vars

首先定义你自己的ctrlp_extension_var:

let s:ctrlp_extension_var = {
        \ 'init': 'xxx',
        \ 'accept': 'xxx',
        \ 'lname': 'xxx',
        \ 'sname': 'xxx',
        \ }

其次,将ctrl_extension_var设置或添加到g:ctrlp_ext_vars

if exists('g:ctrlp_ext_vars') && !empty(g:ctrlp_ext_vars)
  let g:ctrlp_ext_vars = add(g:ctrlp_ext_vars, s:ctrlp_extension_var)
else
  let g:ctrlp_ext_vars = [s:ctrlp_extension_var]
endif