2016-04-27 78 views
0

我想寫我自己的CtrlP擴展名。擴展ctrlp沒有設置`g:ctrlp_extensions`

document表明,我們必須設置g:ctrlp_extensions如下,使我們的擴展工作。

let g:ctrlp_extensions = ['extensionname'] 

但似乎這兩個擴展:ctrlp-funkyctrlp-extensions.vim可以不設置g:ctrlp_extensions仍然工作(我沒有找到使用grep -rn "g:ctrlp_extensions" *在這兩個擴展的烴源文件,該變量)。

所以我的問題是:

  1. 我們可以不設置g:ctrlp_extensions
  2. 延長CtrlP如果是這樣,我們如何能做到這一點

回答

1

後我carfully閱讀代碼,我發現,我需要修改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