ã¯ããã«
ãã®è¨äºã¯ctrlpvim/ctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ã®ä½ãæ¹ã«ã¤ãã¦ã®è¨äºã§ããï¼ctrlpã®å ¬å¼ãªãã¸ããªã®extensionsãã©ã³ãã«æ¸ããã¦ããã¨ã¯ã¹ãã³ã·ã§ã³ã®ä½ãæ¹ï¼ããã³ä»¥ä¸ã®3ã¤ã®è¨äºã®å 容ã«å人çãªç¥è¦ã追å ãããã®ã§ããï¼
- Vimãã©ã°ã¤ã³ã®æ¡å¼µæ©è½ãã©ã°ã¤ã³ãä½ã£ã¦Vimãããã«ä½¿ããããããã - 29th Sta.
- ctrlp.vimã®Extensionãæ¸ãã¨ãã«:NeoBundleLazy autoloadãèæ ®ãã¦g:ctrlp_builtinsããã®ã¾ã¾ä½¿ããªã - cafegale
- CtrlPã¨ã¯ã¹ãã³ã·ã§ã³ã§ãã¤ã©ã¤ã
CtrlPã¨ã¯
ctrlpvim/ctrlp.vimã¯åè£çµãè¾¼ã¿æ¤ç´¢åã®ãã¡ã¤ã©ã§ããï¼ Shougo/unite.vimã¨åç§ãæããã©ã°ã¤ã³ã¨ãã¦ï¼ã¨ã¦ãæåã§ããï¼
ãªãªã¸ãã«ã¯kienæ°ã®ãã®ã§ãããï¼kienæ°ã¨é£çµ¡ãåããªããã¨ããï¼ãããforkããctrlpvim/ctrlp.vimãèªçããï¼
ctrlp.vimã¯æ¨æºæ©è½ã§ãããã¡ã¤ã©ã ãã§ã¯ãªãï¼åè£çµãè¾¼ã¿æ¤ç´¢ã®ã¤ã³ã¿ãã§ã¼ã¹ãå©ç¨ãã¦ï¼ctagsã®ã¿ã°ãundoå±¥æ´ãåè£ã¨ãã¦è¡¨ç¤ºãï¼é¸æãããå ´åã«ããã«å¿ããã¢ã¯ã·ã§ã³ãå®è¡ãããæ¡å¼µãæ¬ä½ã«ä»å±ãã¦ããï¼
ãã®ctrlp.vimã®æ¡å¼µã¯ï¼ç¬¬ä¸è ãä½æãããã¨ãã§ããï¼ unite.vimã®æ§ã ãªæ¡å¼µï¼unite sourceï¼ãå¤æ°ã®äººã«ããéçºããå ¬éããã¦ããããã«ï¼ctrlp.vimã®æ¡å¼µï¼ä»¥å¾ï¼ã¨ã¯ã¹ãã³ã·ã§ã³ã¨å¼ã¶ï¼ãå¤æ°ã®äººã«ããéçºããå ¬éããã¦ããï¼
ctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ã¯ï¼unite.vimã®sourceã»ã©èªç±ã«ä½ããã¨ã¯ã§ããªããï¼ã·ã³ãã«ãã¤ç°¡åã«ä½ããã¨ãå¯è½ãªç¹ãé åã§ããã¨æã£ã¦ããï¼
2015 / 12 / 01 追è¨
kienæ°ã¨é£çµ¡ãåãï¼2015å¹´11æ30æ¥ã«kienæ°ã®ãªãã¸ããªã§ã¯ã¡ã³ããã³ã¹ããã¦ããªãã¨ãããã¨ããªãªã¸ãã«ã®æ¹ã®README.mdã«æè¨ãããï¼
ã¨ã¯ã¹ãã³ã·ã§ã³ã®ä½ãæ¹
g:ctrlp_ext_vars
ã¨ãããªã¹ããä¿æããã°ãã¼ãã«å¤æ°ãããï¼ãã®ã°ãã¼ãã«å¤æ°ã«ä½æããã¨ã¯ã¹ãã³ã·ã§ã³ã«é¢ããè¾æ¸ã追å ããã ãã§ï¼ã¨ã¯ã¹ãã³ã·ã§ã³ã®ä½æã¯çµããã§ããï¼
ããã¦ï¼é¢æ° ctrlp#init()
ã«é©åãªã¤ã³ããã¯ã¹ã渡ããã¨ã§ï¼ä½æããã¨ã¯ã¹ãã³ã·ã§ã³ãå©ç¨ãããã¨ãã§ããï¼
ãã ãï¼ä½æããã¨ã¯ã¹ãã³ã·ã§ã³ã¯ï¼1ã¤ã®ãã¡ã¤ã«ã«ãï¼ autoload/ctrlp/sample.vim
ã«ç½®ãï¼
ãªã¹ã g:ctrlp_extensions
ã«ã¨ã¯ã¹ãã³ã·ã§ã³ãç»é²ãã¦ããå ´åï¼ctrlp.vimæ¬ä½ã®èªã¿è¾¼ã¿æã«ï¼ctrlp.vimæ¬ä½ã runtime autoload/ctrlp/sample.vim
ã¨ãã¦èªã¿è¾¼ã¿ãè¡ãã®ã§ï¼ã¨ã¯ã¹ãã³ã·ã§ã³ã®ãã¡ã¤ã«ã¯ autoload/ctrlp/
以ä¸ã«ç½®ããªããã°ãªããªãï¼
ä½ã¯ã¨ãããï¼å®ä¾ãè¦ã¦ãããã¨ãããï¼
以ä¸ã¯ï¼ã«ã¬ã³ããã£ã¬ã¯ããªã®ãã¡ã¤ã«ã表示ãï¼é¸æããããã¡ã¤ã«ã®è¡æ°ã echo
ããã¨ããã·ã³ãã«ï¼ãã¤ä½ã®å½¹ã«ãç«ããªãï¼ãªã¨ã¯ã¹ãã³ã·ã§ã³ã®ãµã³ãã«ã§ããï¼
plugin/sample.vim
if exists('g:loaded_sample') finish endif let g:loaded_sample = 1 let s:save_cpo = &cpo set cpo&vim command! CtrlPSample call ctrlp#init(ctrlp#sample#id()) let &cpo = s:save_cpo unlet s:save_cpo
autoload/ctrlp/sample.vim
if exists('g:loaded_ctrlp_sample') && g:loaded_ctrlp_sample finish endif let g:loaded_ctrlp_sample = 1 let s:save_cpo = &cpo set cpo&vim let s:sample_var = { \ 'init': 'ctrlp#sample#init()', \ 'accept': 'ctrlp#sample#accept', \ 'lname': 'sample', \ 'sname': 'sample', \ 'type': 'path', \ 'nolim': 1 \} if exists('g:ctrlp_ext_vars') && !empty(g:ctrlp_ext_vars) let g:ctrlp_ext_vars = add(g:ctrlp_ext_vars, s:sample_var) else let g:ctrlp_ext_vars = [s:sample_var] endif let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars) function! ctrlp#sample#id() abort return s:id endfunction function! ctrlp#sample#init() abort return filter(split(globpath('.', '*', 1), "\n"), 'filereadable(v:val)') endfunction function! ctrlp#sample#accept(mode, str) abort call ctrlp#exit() echo len(readfile(a:str)) endfunction let &cpo = s:save_cpo unlet s:save_cpo
å
ã«è¿°ã¹ãããã«ï¼ctrlp.vimæ¬ä½ã runtime autoload/ctrlp/sample.vim
ã¨ãã¦ï¼ä½æããã¨ã¯ã¹ãã³ã·ã§ã³ãèªã¿ã«ããã®ã§ï¼autoloadãã¡ã¤ã«ã§ãã£ã¦ãï¼ãã¡ã¤ã«ã®å
é ã«äºéèªã¿è¾¼ã¿é²æ¢ã®è¨è¿°ããã¦ããå¿
è¦ãããï¼
ãã®ãµã³ãã«ã¯ï¼koturn/ctrlp-sampleã«ããã®ã§ï¼ã¤ã³ã¹ãã¼ã«ãã¦åä½ã確èªãããï¼æ¹é ããããã¦ï¼ctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ã®ä½ãæ¹ã®åå¼·ã«å½¹ç«ã¦ã¦ããã ãããï¼ ãªãï¼masterãã©ã³ãã®ãã®ã¯ï¼å¾è¿°ããåã®å¥½ã¿ã«åããã¦ã³ã¼ããæ´ç·´ãã¦ããã®ã§ï¼ä¸è¨ã®ã³ã¼ãä¾ãã®ã¾ã¾ã®ãã®ã欲ãããªãï¼not-refiedãã©ã³ãã®ãã®ãåç §ãã¦ããã ãããï¼
g:ctrlp_ext_vars
ã«è¿½å ããè¾æ¸ã®ããããã®ãã¼
ã¨ã¯ã¹ãã³ã·ã§ã³ã®ä½æã«ããã¦ï¼è¦ã¨ãªãã®ãï¼ g:ctrlp_ext_vars
ã«è¿½å ããè¾æ¸ã§ããï¼
ããã§ã¯ï¼ãã®è¾æ¸ãæã¤ã¹ããã¼ã«ã¤ãã¦è¿°ã¹ãï¼
å¿ é
init
: æååï¼evalããã¨é¢æ°å¼ã³åºãã«ãªãæååï¼- è©ä¾¡ãããã¹ãé¢æ°å¼ã³åºãã®æååï¼
'ctrlp#sample#init()'
ãªã©ï¼ - åè£ã®åå¾ã«ç¨ãï¼é¢æ°ããåè£ã®ãªã¹ããè¿å´ãã
- unite.vimã§ããã¨ããã®
gather_candidates
- CtrlPã®ãããã¡ã«ç§»åããå¾ã«å¼ã³åºããã
- è©ä¾¡ãããã¹ãé¢æ°å¼ã³åºãã®æååï¼
accept
: æååï¼åè£ãé¸æãããã¨ãã«å¼ã³åºãããé¢æ°åï¼- é¸æããåè£ã«å¯¾ããã¢ã¯ã·ã§ã³ãå®ç¾©ããé¢æ°ã®ååã渡ã
init
ï¼enter
ï¼exit
ã¨ã¯ç°ãªãï¼ é¢æ°å¼ã³åºãã®æ¬å¼§ã¯ä¸è¦- ããã§æå®ããé¢æ°ã®APIã¯
ctrlp#sample#accept(mode, str)
ã¨ãã£ãå½¢ã«ãããã¨ï¼ä»®å¼æ°åã¯ä½ã§ããããï¼æ¬ä½ä»å±ã®ã¨ã¯ã¹ãã³ã·ã§ã³ã«å¾ã£ãï¼mode
: åè£ã®é¸æã«å ¥åãããã¼ã«å¿ããæååãå ¥ã£ã¦ããï¼å¯¾å¿ã¯ä»¥ä¸ã®éã<CR>
: 'mode' ã¯'e'
<C-v>
: 'mode' ã¯'v'
<C-t>
: 'mode' ã¯'t'
<C-x>
: 'mode' ã¯'h'
str
: é¸æããåè£
- é常ï¼é¢æ°ã®å
é ã§
ctrlp#exit()
ãã³ã¼ã«ããã¨ãã mode
ã«å¿ãã¦å¦çãå¤æ´ãã¦ããã¨ã¯ã¹ãã³ã·ã§ã³ã¯å°ãªã
lname
: æååï¼çç¥ç¡ãã®ã¨ã¯ã¹ãã³ã·ã§ã³å - long nameï¼- ã¹ãã¼ã¿ã¹ã©ã¤ã³ã«è¡¨ç¤ºãããçç¥ç¡ãã®ã¨ã¯ã¹ãã³ã·ã§ã³å
sname
: æååï¼çç¥ããã¨ã¯ã¹ãã³ã·ã§ã³å - short nameï¼- ã¹ãã¼ã¿ã¹ã©ã¤ã³ã«è¡¨ç¤ºãããçç¥ãããã¨ã¯ã¹ãã³ã·ã§ã³å
type
: æååã§'line'
ï¼'path'
ï¼'tabs'
ï¼'tabe'
ã®ãããã'line'
- ããããã®åè£ã«å¯¾ãï¼æ«å°¾ã¾ã§å ¥åæååã¨ã®ããããè¡ã
'path'
- ããããã®ãã¡ã¤ã«ãã¹ã®ãããªå½¢å¼ã®åè£ã«å¯¾ãï¼æ«å°¾ã¾ã§å ¥åæååã¨ã®ããããè¡ã
- ããããã®åè£ã«ã¤ãã¦ï¼å ¥åã«ãããããé¨åããã¤ã©ã¤ã ããã
'tabs'
(tab start)- æåã®TABæåã¾ã§ããããã
- åè£ã®æååã®æåã®TAB以éãï¼ã¦ã¼ã¶ã«æ å ±ã¨ãã¦æ示ãããå ´åã«ç¨ããï¼åè£ã«é¢ãããã³ãã®æ示ï¼
'tabe'
(tab end)- æå¾ã®ã¿ãæåã¾ã§ããããã
- ç¨éã¯
'tabs'
ã¨åãã§ï¼ã©ã®TABã¾ã§ãããã対象ã«ããããç°ãªã
ä»»æ
enter
: æååï¼evalããã¨é¢æ°å¼ã³åºãã«ãªãæååï¼- CtrlPãèµ·åããåã«å¼ã³åºãããå¦ç
- å
ã®ãããã¡ã®
filetype
ã®åå¾ãããã¨ãªã©ã«ç¨ãã
exit
: æååï¼evalããã¨é¢æ°å¼ã³åºãã«ãªãæååï¼- CtrlPãçµäºããåã«å¼ã³åºãããå¦ç
opts
: æååï¼evalããã¨é¢æ°å¼ã³åºãã«ãªãæååï¼- ãªãã·ã§ã³ã®è¨å®ãªã©ã«ç¨ããããã
enter
ã§æå®ããé¢æ°ããåã«å¼ã³åºããã
sort
: æ°å¤ï¼0
ã1
ï¼- åè£ãã½ã¼ããããå¦ã
0
ãªãåè£ãã½ã¼ãããªãï¼ããã©ã«ãï¼ï¼1
ãªãåè£ãã½ã¼ããã
specinput
: æ°å¤ï¼0
ã1
ï¼ - special input..
ã@cd
ã¨ãã£ãç¹æ®ãªå ¥åãå¯è½ã«ãã:h ctrlp-input-formats
ãåç §
0
ãªãç¹æ®å ¥åãä¸å¯ã«ï¼ããã©ã«ãï¼ï¼1
ãªãç¹æ®å ¥åãå¯è½ã«ãã..
ã¯../
ã¨ç価ã§ï¼1ã¤ããããå¢ãã度ã«ãã£ã¬ã¯ããªé層ã1ã¤ä¸ã«ããå ¥åã¨ãã¦è§£éããï¼ãªã¿ã¼ã³ãã¼ãæ¼ãã¨ï¼ã¯ã¼ãã³ã°ãã£ã¬ã¯ããªãå¤æ´ãï¼å度init
ã«æå®ããé¢æ°ãå¼ã³åºããï¼åè£ãæ´æ°ããã...
ãªã../../
ï¼....
ãªã../../../
ã«ç§»åãã
@cd
ã¯ã¯ã¼ãã³ã°ãã£ã¬ã¯ããªãå¤æ´ãã- åè£é¸ææã«
@cd ./plugin/
ã¨å ¥åãã¦ï¼ãªã¿ã¼ã³ãã¼ãæ¼ãã¨ï¼ã¯ã¼ãã³ã°ãã£ã¬ã¯ããªã./plugin/
ã«å¤æ´ãï¼å度init
ã«æå®ããé¢æ°ãå¼ã³åºããï¼åè£ãæ´æ°ããã
- åè£é¸ææã«
- CtrlPèµ·åä¸ã«ã¯ã¼ãã³ã°ãã£ã¬ã¯ããªãå¤æ´ãããå ´åã«ç¨ãã
- åè£ã®çµãè¾¼ã¿ã«ç¨ããã®ã§ã¯ãªã
- ã¯ã¼ãã³ã°ãã£ã¬ã¯ããªãåè£ã®åå¾ã«é¢ãã£ã¦ãããã®ã«æå¹
ããã¥ã¡ã³ãåããã¦ããªããã®ï¼ä»»æï¼
nolim
: æ°å¤ï¼0
ã1
ï¼ - no limit0
ãªãå¶éããï¼ããã©ã«ãï¼ï¼1
ãªãç¡å¶éï¼ã¹ã¯ãã¼ã«å¯è½ï¼ã«- æ¥æ¬èªãªã©ã®æ¤ç´¢ãã¥ããåè£ãããã¨ãã«ç¨ããã¨ä¾¿å©ãããããªã
- mattnããã®ctrlpã®ã¨ã¯ã¹ãã³ã·ã§ã³ã«å¤ãç¨ãããã¦ããã®ãè¦æãã
opmul
: æ°å¤ï¼0
ã1
ï¼ - open multiple0
ãªãè¤æ°é¸æä¸å¯ï¼ããã©ã«ãï¼ï¼1
ãªãè¤æ°é¸æå¯è½ã«- æãç®è¨å·ã®ãã¨ã§ã¯ãªã
- è¤æ°é¸æã¯åè£ä¸ã§
<C-z>
ã¨å ¥åãããã¨ã§åè£ã«ãã¼ã¯ãä»ãï¼<C-o>
ãå ¥åãããã¨ã§è¡ããã¨ãã§ãã - ãã ãï¼ è¤æ°é¸æã®ã¢ã¯ã·ã§ã³ã¯ "åºæ¬çã«" å®ç¾©ã§ããï¼ãã¡ã¤ã«ãéãã¨ããåä½ã®ã¿ ã§ãã
- åå¨ãããã¡ã¤ã«ã®ãã¹ã«éå®ããããï¼
autocmd
ã®BufReadCmd
ãç¨ãããã¨ã§å¼·å¼ã«ã¢ã¯ã·ã§ã³ãå®ç¾©ãããã¨ã¯å¯è½ï¼å±éºï¼
- åå¨ãããã¡ã¤ã«ã®ãã¹ã«éå®ããããï¼
- åè£ã¯ãã¡ã¤ã«ãã¹ã¨ãã¦è§£éããï¼åå¨ããªããã¡ã¤ã«ãã¹ã§ããåè£ã¯é¸æãã¦ãé¤å¤ããã
- åºæ¬çã«å®ç¾©ããªãï¼æ¬ä½ä»å±ã®ãã©ã°ã¤ã³ã«ç¨ãããã¦ãã
wipe
: æååï¼é¢æ°åï¼<F7>
ã§åè£ãé¤å»ããã¨ãã®ã¢ã¯ã·ã§ã³ãæå®ããopmul
ã1
ã®ã¨ãï¼<C-z>
ã§ãã¼ã¯ãä»ãï¼<F7>
ã§ãã¼ã¯ãä»ããåè£ãæå®ããé¢æ°ã«æ¸¡ã- ãã¼ã¯ã1ã¤ãä»ãã¦ããªãå ´åï¼
<F7>
ã§å ¨ã¦ã®åè£ãé¤å»ãããã©ããã®ã¡ãã»ã¼ã¸ã表示ããão
ãå ¥åããã¨ï¼æå®ããé¢æ°ã«ç©ºãªã¹ãã渡ãã¦ã³ã¼ã«ãï¼ãã®å¾ctrlpãããã¡ã«æ»ãc
ãå ¥åããã¨ï¼åè£ãé¤å»ããï¼ctrlpãããã¡ã«æ»ã
init
ï¼enter
ï¼exit
ã¨ã¯ç°ãªãï¼ é¢æ°å¼ã³åºãã®æ¬å¼§ã¯ä¸è¦- ããã§æå®ããé¢æ°ã®APIã¯
ctrlp#sample#wipe(entries)
ã¨ãã£ãå½¢ã«ãããã¨ï¼ä»®å¼æ°åã¯ä½ã§ããããï¼æ¬ä½ä»å±ã®ã¨ã¯ã¹ãã³ã·ã§ã³ã«å¾ã£ãï¼ - æ°ããªåè£ãªã¹ã ï¼å¼æ°ã®é¤å»å¯¾è±¡ãé¤å»ããããªã¹ããæ³å®ããã¦ããï¼ãé¢æ°ããè¿å´ãã
- åºæ¬çã«å®ç¾©ããªãï¼æ¬ä½ä»å±ã®ãã©ã°ã¤ã³ã«ç¨ãããã¦ãã
opmul
㨠wipe
ãç¨ãï¼æå®ããåè£ãé¤å»ãããã®ã§ããã°ï¼ä»¥ä¸ã®ããã«ããã®ãããã ããï¼
function! ctrlp#sample#init() abort " åè£ãä»ã®é¢æ°ã§ç¨ããããã«ï¼ã¹ã¯ãªãããã¼ã«ã«å¤æ°ã§ä¿æãã¦ãã " ãã® s:candidates 㯠ctrlp#sample#exit() ã§unletããã¨ãã let s:candidates = filter(split(globpath('.', '*', 1), "\n"), 'filereadable(v:val)') return s:candidates endfunction function! ctrlp#sample#wipe(entries) abort return empty(a:entries) ? [] : filter(s:candidates, 'index(a:entries, v:val) == -1') endfunction
ä¸è¨ã® ctrlp#sample#wipe()
ãåããã«ããã®ã§ããã°ï¼ä»¥ä¸ã®ããã«forãç¨ãã¦æ¸ãã¨ããï¼
function! ctrlp#sample#wipe(entries) abort if empty(a:entries) return [] endif for entry in a:entries let idx = index(s:candidates, entry) if idx != -1 call remove(s:candidates, idx) endif endfor return s:candidates endfunction
åè
ã® filter()
ãç¨ãããã®ã¨æ¯ã¹ãã¨ï¼ a:entries
㨠s:candidates
ã®æãæ¹ï¼ã«ã¼ãã®ä¸»ä½ï¼ãç°ãªã£ã¦ãããï¼åè£ã«éè¤ãç¡ããã°åä¸ã®çµæãå¾ãããã¯ãã ï¼
ï¼åè
ã¯é¤å»åè£ã«ããããããã®ãåè£ããå
¨ã¦åãé¤ãï¼å¾è
ã¯åè£ã®ãã¡ï¼æåã«ããããããã®ã®ã¿ãåãé¤ãï¼
Vim scriptã®ãã¼ã¹ã¯æéããããï¼ã«ã¼ãæ¯ã«ããã¼ã¹ãè¡ã£ã¦ããã¯ãï¼ããï¼ s:candidates
ã®æ°ãå¤ããªãã®ã§ããã°ï¼åè
ã®æ¹ãé«éã«åä½ããã¨æãããï¼
CtrlPèµ·åæã«ã¯ã¼ãã³ã°ãã£ã¬ã¯ããªãå¤æ´ãã
ctrlp#init()
ã«ä½æããã¨ã¯ã¹ãã³ã·ã§ã³ã®IDã渡ããã¨ã§ï¼CtrlPãèµ·åããããã«ãªã£ã¦ãããã¨ã¯æåã«è¿°ã¹ãï¼
å®ã¯ï¼ ctrlp#init()
ã¯ï¼ç¬¬äºå¼æ°ã«è¾æ¸ãåããã¨ãã§ãï¼ãã®è¾æ¸ã®ãã¼ dir
ã®å¤ã«ï¼ã¯ã¼ãã³ã°ãã£ã¬ã¯ããªãæå®ãããã¨ã§ï¼CtrlPèµ·åæã®ãã£ã¬ã¯ããªãå¤æ´ãããã¨ãã§ããï¼
ããã¯ç¸å¯¾ãã¹ãããã¡ã¤ã«ãç°¡åã«è¾¿ãããå ´åãªã©ã«ä½¿ç¨ã§ããï¼
command! -nargs=1 -complete=dir CtrlPSample call ctrlp#init(ctrlp#sample#id(), {'dir': <q-args>})
åè£ã®ã·ã³ã¿ãã¯ã¹ãã¤ã©ã¤ã
æ¬ä½ä»å±ã®ã¨ã¯ã¹ãã³ã·ã§ã³ããã®è¨äºãåèã«ããã¨ï¼CtrlPã®åè£ã«ãã¤ã©ã¤ããé©ç¨ããï¼ããªãã¡ï¼CtrlPãããã¡å
ã§ãã¤ã©ã¤ããè¡ãï¼ã«ã¯ï¼ ctrlp#sample#init()
å
ã§ï¼
function! ctrlp#sample#init() abort call ctrlp#hicheck('CtrlPSampleTabExtra', 'Comment') syntax match CtrlPSampleTabExtra '\zs\t.*$' return filter(split(globpath('.', '*', 1), "\n"), 'filereadable(v:val)') endfunction
ãªã©ã®ããã«ããã¨ããï¼ æ¬ä½ä»å±ã®ã¨ã¯ã¹ãã³ã·ã§ã³ã§ã¯ï¼ã·ã³ã¿ãã¯ã¹ãã¤ã©ã¤ãç¨ã®è¨å®ãè¡ãé¨åãé¢æ°ã¨ãã¦åãåºãï¼
function! ctrlp#sample#init() abort call s:syntax() return filter(split(globpath('.', '*', 1), "\n"), 'filereadable(v:val)') endfunction function! s:syntax() abort if ctrlp#nosy() return endif call ctrlp#hicheck('CtrlPSampleTabExtra', 'Comment') syntax match CtrlPSampleTabExtra '\zs\t.*$' endfunction
ã¨ãã¦ããï¼ ctrlp#nosy()
ã«ã¤ãã¦ã¯å¾è¿°ããï¼ï¼
ctrlp#hicheck()
ã¯ãã¤ã©ã¤ãã®ãªã³ã¯ããã§ãã¯ããé¢æ°ã§ããï¼ãªã³ã¯ãåå¨ããªããªãã°ï¼ãªã³ã¯ãè¡ãï¼
å®è£
ã¯é常ã«åç´ã§ï¼
" ctrlpvim/ctrlp.vim ã® autoload/ctrlp.vim ããå¼ç¨ fu! ctrlp#hicheck(grp, defgrp) if !hlexists(a:grp) exe 'hi link' a:grp a:defgrp en endf
ã¨ãªã£ã¦ããï¼
ã¾ãï¼ ctrlp#nosy()
(no syntax) ã¯ã·ã³ã¿ãã¯ã¹ãã¤ã©ã¤ããå©ç¨ã§ããç°å¢ã§ãããã©ãããå¤å¥ããé¢æ°ã§ããï¼
ã·ã³ã¿ãã¯ã¹æ©è½ãå©ç¨ã§ããªãVimãï¼ :syntax enable
ããã¦ããªãVimãªãã° 1
ãè¿å´ãï¼ã·ã³ã¿ãã¯ã¹ãã¤ã©ã¤ããå¯è½ãªãã°ï¼ 0
ãè¿å´ããï¼
" ctrlpvim/ctrlp.vim ã® autoload/ctrlp.vim ããå¼ç¨ fu! ctrlp#nosy() retu !( has('syntax') && exists('g:syntax_on') ) endf
ã°ãã¼ãã«å¤æ° g:syntax_on
ã¯ï¼ :syntax enable
ã¨ã³ãã³ããå®è¡ããï¼å¤§æµï¼.vimrcã«æ¸ããã¦ããã ããï¼ãã¨ã§å®ç¾©ãããå¤æ°ã§ï¼ :syntax off
ã¨ã³ãã³ããå®è¡ãã㨠unlet
ãããï¼
大æµã®ã¦ã¼ã¶ã¯ã·ã³ã¿ãã¯ã¹æ©è½ããªã³ã«ãã¦ããã®ã§ï¼ãããããã§ãã¯ããå¿
è¦ãç¡ããï¼æ¬ä½ä»å±ã®ãã©ã°ã¤ã³ã«æ²¿ã£ãå½¢ã«è¨è¿°ãã¦ããã¨ï¼é°å²æ°ã¯è¯ãã ããï¼
ã·ã³ã¿ãã¯ã¹ãã¤ã©ã¤ãã®ç¨éã¨ãã¦ã¯ï¼ type
ã« tabs
ãæå®ããå ´åï¼æåã®ã¿ãæå以éãç®ç«ããªãè²ã«ããã¨ãã£ããã®ãèããããï¼
å®ã¯ï¼å
è¿°ã®ãã¤ã©ã¤ãã®ä¾ã¯ï¼æ¬ä½ä»å±ã® type
ã tabs
ã§ããã¨ã¯ã¹ãã³ã·ã§ã³ã«ãæ¸ããã¦ãããã¿ãæå以éã®ãã¤ã©ã¤ããã³ã¡ã³ãã¨åããã®ã«ãã¦ï¼ç®ç«ããªãããããã®ã§ããï¼
æ¹è¯æ¡
ããã¾ã§ã¯ctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ã®ä½ãæ¹ã«ã¤ãã¦è¿°ã¹ããï¼ããããã¯ãã¨ã¯ã¹ãã³ã·ã§ã³ã®ã³ã¼ãã¯ããæ¸ãã®ã好ãã ãã¨ããå人ã®æè¦ãæ¸ãï¼
ctrlp.vimæ¬ä½ã®ã°ãã¼ãã«å¤æ°ã®åç §
ctrlp.vimã®æ¡å¼µã¯ãã©ã°ã¤ã³ã¨ãã¦ãªãã·ã§ãã«ã§ããï¼NeoBundleçã§ä¾åé¢ä¿ãæ示ããããªãå ´åããããããããªãï¼ãããªã¦ã¼ã¶ãããã®ãã¯çåã§ãããï¼ï¼ ãã®ãã¨ã«ã¤ãã¦èãã¦ããã¨ãã«ï¼ä»¥ä¸ã®è¨äºãè¦ã¦ï¼ãªãã»ã©ï¼ã¨æããï¼
ctrlp.vimã®æ¡å¼µã¯ããã¾ã§ãªãã·ã§ãã«ã¨ãã¦ãã©ã°ã¤ã³ã«ä»å±ããã¦ããï¼NeoBundleã«ä¾åé¢ä¿ãè¨è¿°ããã¦ãããï¼ctrlp.vimãé
延èªã¿è¾¼ã¿ãããããã«è¨å®ãã¦ããå ´åï¼å
è¿°ã®è¨äºã«ããããã«ï¼ä½æãããã©ã°ã¤ã³ãèªã¿è¾¼ã¿ãã¦ãã段é㧠g:ctrlp_builtins
ãå®ç¾©ããã¦ããªãã¨ããåé¡ãèµ·ãããã¨ãããã ããï¼
å¾ã£ã¦ï¼ctrlpãæä¾ãã¦ããautoloadé¢æ° ctrlp#getvar()
ãç¨ãã¦ï¼ctrlp.vimæ¬ä½ã®èªã¿è¾¼ã¿ãçºçããï¼ctrlpã®ã°ãã¼ãã«å¤æ°ãèªã¿è¾¼ã¾ããããã«ããæ¹ãæã¾ããã¯ãã ï¼
ãã®ãã¨ãè¸ã¾ãï¼ä½æããã¨ã¯ã¹ãã³ã·ã§ã³ã®ãã¡ã¤ã«ã®å
é ã«ï¼
let s:ctrlp_builtins = ctrlp#getvar('g:ctrlp_builtins')
ã¨è¨è¿°ãï¼ g:ctrlp_builtins
ã®ä»£ããã«ï¼ s:ctrlp_builtins
ãç¨ããããã«ããã¨ããããã ï¼
ãã ï¼ãã©ã°ã¤ã³ããã¼ã¸ã£ã§ãã neobundle.vim ã®ããã ãã®è¨è¿°ãããã¨ããã®ã¯ï¼æ¬è³ªçã§ã¯ãªãï¼å°ãå«ãªæ°æã¡ã«ãªãï¼
ãã® g:ctrlp_builtins
ã®åå¾æ¹æ³ã«é¢ãã¦ã¯ï¼å人ã®å¥½ã¿ã大ããã ããï¼
æ£ç´ï¼ã¦ã¼ã¶ãNeoBundleã®ä¾åé¢ä¿ãããããªæ¸ãã°åé¡ã®ç¡ã話ã§ãããï¼
ã¡ãªã¿ã«ï¼ ctrlp#getvar()
ã¯ä»¥ä¸ã®ãããªå®è£
ã«ãªã£ã¦ããï¼
" ctrlpvim/ctrlp.vim ã® autoload/ctrlp.vim ããå¼ç¨ fu! ctrlp#getvar(var) retu {a:var} endf
a:var
ã¯æååã¨æ³å®ãããã®ã§ï¼{a:var}
ã¯ï¼ eval(a:var)
ã¨èªã¿æ¿ãã¦ããï¼ a:val
ãè©ä¾¡ããçµæã«ç½®ãæããããï¼
ããªãã¡ï¼ ctrlp#getvar()
ã¯ï¼ autoload/ctrlp.vim
å
ã§å¼æ°ãè©ä¾¡ããçµæãè¿ãé¢æ°ã§ããï¼autoload/ctrlp.vim
ã®ã¹ã¯ãªãããã¼ã«ã«å¤æ°ãåå¾ãããã¨ãã§ããï¼
g:ctrlp_ext_vars
ã¸ã®ã¨ã¯ã¹ãã³ã·ã§ã³ã®è¾æ¸ã®è¿½å
Vimãã©ã°ã¤ã³ã®æ¡å¼µæ©è½ãã©ã°ã¤ã³ãä½ã£ã¦Vimãããã«ä½¿ããããããã - 29th Sta. ã¨ããè¨äºã®ä¾ã§ã¯ï¼
let s:sample_var = { \ 'init': 'ctrlp#sample#init()', \ 'accept': 'ctrlp#sample#accept', \ 'lname': 'sample extension', \ 'sname': 'sample', \ 'type': 'path', \ 'nolim': 1 \} if exists('g:ctrlp_ext_vars') && !empty(g:ctrlp_ext_vars) let g:ctrlp_ext_vars = add(g:ctrlp_ext_vars, s:sample_var) else let g:ctrlp_ext_vars = [s:sample_var] endif
ã¨ãã¦ãããï¼ add()
ã¯ç¬¬ä¸å¼æ°ã®ãªã¹ãã«å¯¾ãã¦ç ´å£çå¤æ´ãå ããã®ã§ï¼è¿å´å¤ãåã³ç¬¬ä¸å¼æ°ã®ãªã¹ãã«ä»£å
¥ããå¿
è¦ã¯ãªãï¼ã©ã¡ããèªã¿ããããã¯ç½®ãã¦ããã¨ãã¦ï¼ï¼
ã¾ãï¼ã¹ã¯ãªãããã¼ã«ã«å¤æ° s:sample_var
ãä¿æããå¿
è¦ããªãï¼
ãããã®ãã¨ããï¼ä¸è¨ã³ã¼ãã¯ä»¥ä¸ã®ããã«è¨è¿°ãããã¨ãã§ããï¼
let s:sample_var = { \ 'init': 'ctrlp#sample#init()', \ 'accept': 'ctrlp#sample#accept', \ 'lname': 'sample extension', \ 'sname': 'sample', \ 'type': 'path', \ 'nolim': 1 \} if exists('g:ctrlp_ext_vars') && !empty(g:ctrlp_ext_vars) call add(g:ctrlp_ext_vars, s:sample_var) else let g:ctrlp_ext_vars = [s:sample_var] endif unlet s:sample_var
å人çã«ã¯ifæãç¨ããã«ã·ã³ãã«ã«æ¸ãããã®ã§ï¼ä»¥ä¸ã®ããã«è¨è¿°ãããã¨ã«ãã¦ããï¼
let g:ctrlp_ext_vars = add(get(g:, 'ctrlp_ext_vars', []), { \ 'init': 'ctrlp#sample#init()', \ 'accept': 'ctrlp#sample#accept', \ 'lname': 'sample extension', \ 'sname': 'sample', \ 'type': 'path', \ 'nolim': 1 \})
add()
ã®ç¬¬ä¸å¼æ°ãå³å¤ []
ã¨ãªããã¨ãããã®ã§ï¼ãã®å ´å㯠add()
ã®è¿å´å¤ãå©ç¨ããªããã°ãªããªãï¼
å¯è½ãªéãï¼ã°ãã¼ãã«é¢æ°ã使ç¨ããªãããã«ãã
ã¨ã¯ã¹ãã³ã·ã§ã³å´ã«ã°ãã¼ãã«é¢æ°ãå®ç¾©ãï¼ctrlp.vimã«æ¸¡ãè¾æ¸ã«ãã®ã°ãã¼ãã«é¢æ°åã渡ãã¦ãããï¼å¿ ãããããããå¿ è¦ã¯ãªãï¼ ã¹ã¯ãªãããã¼ã«ã«é¢æ°ã§ãã£ã¦ãï¼ã¹ã¯ãªããçªå·ä»ãã§ããã°ï¼ã°ãã¼ãã«ã«åç §ãããã¨ãå¯è½ã ããã ï¼
function! s:hoge() abort echomsg 'Hello, World' endfunction " :call <SNR>18_hoge() ãªã©ã¨ããå½¢ã§ï¼ã°ãã¼ãã«ã«å¼ã³åºããã¨ãå¯è½
ãã®ãã¨ãè¸ã¾ãï¼ g:ctrlp_ext_vars
ã«è¾æ¸ã追å ããè¨è¿°ãï¼ä»¥ä¸ã®ãããªè¨è¿°ã«å¤æ´ããï¼
function! s:get_sid_prefix() abort return matchstr(expand('<sfile>'), '\zs<SNR>\d\+_\zeget_sid_prefix$') endfunction let s:sid_prefix = s:get_sid_prefix() delfunction s:get_sid_prefix let g:ctrlp_ext_vars = add(get(g:, 'ctrlp_ext_vars', []), { \ 'init': s:sid_prefix . 'init()', \ 'accept': s:sid_prefix . 'accept', \ 'lname': 'sample extension', \ 'sname': 'sample', \ 'type': 'path', \ 'nolim': 1 \}) let s:id = s:ctrlp_builtins + len(g:ctrlp_ext_vars) unlet s:sid_prefix
åã¯ï¼ä¸ç¹å®å¤æ°ã®ç¸æï¼ãã©ã°ã¤ã³ã§ãã£ããï¼.vimrcã§ãã£ããï¼ã«APIãæä¾ããå ´é¢ã§ã¯ï¼ã°ãã¼ãã«é¢æ°ãç¨ãï¼ä»åã®ããã«ä½æãããã©ã°ã¤ã³ãã è½åçã« ä»ã®ãã©ã°ã¤ã³ã«èªèº«ã®é¢æ°ã渡ãå ´åã§ã¯ï¼ã¹ã¯ãªãããã¼ã«ã«é¢æ°ãç¨ããã¨ããã ããã¨èãã¦ããï¼ ãã ï¼ããã¾ã§ãã¦ã°ãã¼ãã«é¢æ°ãå«ãå¿ è¦ãããã®ãã¨åãããã°ï¼ã©ããªãã ããã¨æã£ã¦ãã¾ãï¼ ã¾ãï¼ã¹ã¯ãªããçªå·ã®åå¾ã¯ï¼ã³ã¼ãã¨ãã¦ãããã¡ããã¡ããã¦ããï¼5è¡ã¯å¿ è¦ã«ãªãï¼ï¼ã°ãã¼ãã«é¢æ°ãç¨ããæ¹ãã¹ãã¼ãã¨ããæ°ããããï¼ãã®å ´ã§ã¯æ°ã«ããªããã¨ã«ããï¼
ããã¾ã§ã®ãã¨ãè¸ã¾ãï¼æåã«ç´¹ä»ããã«ã¬ã³ããã£ã¬ã¯ããªã®ãã¡ã¤ã«ã表示ãï¼é¸æããããã¡ã¤ã«ã®è¡æ°ã表示ããã¨ã¯ã¹ãã³ã·ã§ã³ã以ä¸ã®ããã«æ¸ãç´ããï¼
if exists('g:loaded_ctrlp_sample') && g:loaded_ctrlp_sample finish endif let g:loaded_ctrlp_sample = 1 let s:save_cpo = &cpo set cpo&vim let s:ctrlp_builtins = ctrlp#getvar('g:ctrlp_builtins') function! s:get_sid_prefix() abort return matchstr(expand('<sfile>'), '\zs<SNR>\d\+_\zeget_sid_prefix$') endfunction let s:sid_prefix = s:get_sid_prefix() delfunction s:get_sid_prefix let g:ctrlp_ext_var = add(get(g:, 'ctrlp_ext_vars', []), { \ 'init': s:sid_prefix . 'init()', \ 'accept': s:sid_prefix . 'accept', \ 'lname': 'sample', \ 'sname': 'sample', \ 'type': 'path', \ 'nolim': 1 \}) let s:id = s:ctrlp_builtins + len(g:ctrlp_ext_vars) unlet s:ctrlp_builtins s:sid_prefix function! ctrlp#sample#id() abort return s:id endfunction function! s:init() abort return filter(split(globpath('.', '*', 1), "\n"), 'filereadable(v:val)') endfunction function! s:accept(mode, str) abort call ctrlp#exit() echomsg len(readfile(a:str)) endfunction let &cpo = s:save_cpo unlet s:save_cpo
ctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ã®ãã³ãã¬ã¼ã
åã¯ctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ãä½æããéã«ï¼ä»¥ä¸ã®ãã³ãã¬ã¼ããç¨ãã¦ããï¼
<+FILEBASE+>
ãé©å®ï¼ã¨ã¯ã¹ãã³ã·ã§ã³ã®ãã¡ã¤ã«åãããã£ã¬ã¯ããªé¨ã¨ï¼æ¡å¼µåãåãé¤ãããã®ã«ããã°ããï¼ :%s/<+FILEBASE+>/\=fnamemodify(expand('%'), ':t:r')
ï¼ï¼
ããã thinca/vim-template ãªã©ã®ãã³ãã¬ã¼ããã©ã°ã¤ã³ã¨çµã¿åãããã¨ï¼ãµã¯ãã¨ã¨ã¯ã¹ãã³ã·ã§ã³ãä½ããã¨ãã§ããã¯ãã ï¼
ãªãï¼ä»¥ä¸ã®ãã³ãã¬ã¼ãã«ã¯ï¼CtrlPãããã¡ã§ãã¤ã©ã¤ãããã³ã¼ãã¯å«ã¾ããªãï¼ åã®å ´åï¼ãã¤ã©ã¤ããå¿ è¦ãªã¨ã¯ã¹ãã³ã·ã§ã³ãæ¸ããã¨ããã¾ãç¡ãã®ã§ï¼å¿ è¦ã«å¿ãã¦è¿½å ããããã«ãã¦ããããã ï¼
if exists('g:loaded_ctrlp_<+FILEBASE+>') && g:loaded_ctrlp_<+FILEBASE+> finish endif let g:loaded_ctrlp_<+FILEBASE+> = 1 let s:save_cpo = &cpo set cpo&vim let s:ctrlp_builtins = ctrlp#getvar('g:ctrlp_builtins') function! s:get_sid_prefix() abort return matchstr(expand('<sfile>'), '\zs<SNR>\d\+_\zeget_sid_prefix$') endfunction let s:sid_prefix = s:get_sid_prefix() delfunction s:get_sid_prefix let g:ctrlp_ext_var = add(get(g:, 'ctrlp_ext_vars', []), { \ 'init': s:sid_prefix . 'init()', \ 'accept': s:sid_prefix . 'accept', \ 'lname': '<+FILEBASE+>', \ 'sname': '<+FILEBASE+>', \ 'type': 'line', \ 'enter': s:sid_prefix . 'enter()', \ 'exit': s:sid_prefix . 'exit()', \ 'opts': s:sid_prefix . 'opts()', \ 'sort': 0, \ 'specinput': 0, \ 'nolim': 1 \}) let s:id = s:ctrlp_builtins + len(g:ctrlp_ext_vars) unlet s:ctrlp_builtins s:sid_prefix function! ctrlp#<+FILEBASE+>#id() abort return s:id endfunction function! s:init() abort " Gather candidates let candidates = [] return candidates endfunction function! s:accept(mode, str) abort call ctrlp#exit() " Write actions endfunction function! s:enter() abort " Called before s:init() " For example: get filetype endfunction function! s:exit() abort " Called when exit ctrlp endfunction function! s:opts() abort " Called before s:enter() " Set options etc... endfunction let &cpo = s:save_cpo unlet s:save_cpo
æå°éã®æ©è½ã«çµã£ããã³ãã¬ã¼ããªãã°ï¼ä»¥ä¸ã®ããã«ãªãã ããï¼
if exists('g:loaded_ctrlp_<+FILEBASE+>') && g:loaded_ctrlp_<+FILEBASE+> finish endif let g:loaded_ctrlp_<+FILEBASE+> = 1 let s:save_cpo = &cpo set cpo&vim let s:ctrlp_builtins = ctrlp#getvar('g:ctrlp_builtins') function! s:get_sid_prefix() abort return matchstr(expand('<sfile>'), '\zs<SNR>\d\+_\zeget_sid_prefix$') endfunction let s:sid_prefix = s:get_sid_prefix() delfunction s:get_sid_prefix let g:ctrlp_ext_vars = add(get(g:, 'ctrlp_ext_vars', []), { \ 'init': s:sid_prefix . 'init()', \ 'accept': s:sid_prefix . 'accept', \ 'lname': '<+FILEBASE+>', \ 'sname': '<+FILEBASE+>', \ 'type': 'line', \ 'nolim': 1 \}) let s:id = s:ctrlp_builtins + len(g:ctrlp_ext_vars) unlet s:ctrlp_builtins s:sid_prefix function! ctrlp#<+FILEBASE+>#id() abort return s:id endfunction function! s:init() abort " Gather candidates let candidates = [] return candidates endfunction function! s:accept(mode, str) abort call ctrlp#exit() " Write actions endfunction let &cpo = s:save_cpo unlet s:save_cpo
åºæ¬çã«ãããã®ãã³ãã¬ã¼ãã® s:init()
㨠s:accept()
ãä¸å¿ã«å®è£
ããã ãã§ããã¯ãã ï¼
æå¾ã«
ctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ãä½ãã«ããã£ã¦è¦ããªããã°ãªããªããã¨ã¯ï¼unite.vimããå°ãªãï¼unite sourceããç°¡åã«ä½ããã¨ãã§ããï¼ æ¥æ¬äººãä½ã£ããã©ã°ã¤ã³ã«ã¯ï¼unite sourceãä»å±ãã¦ãããã®ãå¤ããï¼ctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ãä»å±ãã¦ãããã©ã°ã¤ã³ã¯å°ãªãï¼ unite sourceãä»å±ãããã®ã§ããã°ï¼æ¯éã¨ãctrlp.vimã®ã¨ã¯ã¹ãã³ã·ã§ã³ãä»å±ããã¦ã¿ã¦ã¯ã©ãã ãããï¼
追è¨
2015 / 12 / 01
ä½ã¨ãã®mattnããã«ãã®è¨äºãåãä¸ãã¦ããã ããï¼
- ãã¤ã¼ã
- Big Sky :: Vim script 㧠get ã使ã£ã¦ãã®å¬ã¯ã¢ãVimmerã®åãGETãããã
å½åã¯å²ã¨ãããã¨æ¸ããè¨äºã§ï¼æ¥ããããééããªã©ããã£ãã®ã ãï¼ã¾ããmattnããã«ç´¹ä»ãã¦ããã ããã¨æã£ã¦ããªãã£ãï¼
mattnããã¯ããã°ä¸ã§ï¼ g:ctrlp_ext_vars
ã«è¿½å ããã¨ãã« if ~ else ãç¨ãããï¼get() ãç¨ãããã«ã¤ãã¦å ä¸ãã¦è§£èª¬ãã¦ãã ãã£ã¦ããï¼
ç¹ã«ï¼get()
ã®ç¬¬ä¸å¼æ°ã« g:
ã¨ããä¸è¦å¤æ°ã£ã½ããªããã®ãä¸ãããããã«ã¤ãã¦è§£èª¬ãã¦ãã ãã£ã¦ããï¼
let s:sample_var = { \ 'init': s:sid_prefix . 'init()', \ 'accept': s:sid_prefix . 'accept', \ 'lname': 'sample extension', \ 'sname': 'sample', \ 'type': 'path', \ 'nolim': 1 \} if exists('g:ctrlp_ext_vars') && !empty(g:ctrlp_ext_vars) call add(g:ctrlp_ext_vars, s:sample_var) else let g:ctrlp_ext_vars = [s:sample_var] endif unlet s:sample_var
ã¨ããããï¼
let g:ctrlp_ext_vars = get(g:, 'ctrlp_ext_vars', []) + [{ \ 'init': s:sid_prefix . 'init()', \ 'accept': s:sid_prefix . 'accept', \ 'lname': 'sample extension', \ 'sname': 'sample', \ 'type': 'path', \ 'nolim': 1 \}]
ã¨ããæ¹ãä¸ç´Vimmerã«è¦ããããããªã®ã§ï¼ã¿ãªãããè¦ãã§ãã¯ã ï¼
ã¡ãªã¿ã«ï¼Vim scriptã¯ãã¼ã¹ãããã¯ã§ããé¨åãããã®ã§ï¼åè ããå¾è ã®æ¹ãé«éã«åä½ããã¯ãã ï¼ ã«ãã³ããã®ä»ï¼ãã·ã³ã«åªãããããï¼é»åæ¶è²»ãå ãã«æãããã®ã§ããã°ï¼å¾è ãç¨ããã¨ããã ããï¼ ï¼1度ããå®è¡ãããªãå¦çã«ä½ãè¨ã£ã¦ãããã ï¼ã¨ããããã³ãã¯ç¡ãã§ãé¡ããããï¼
åè
- ctrlpvim/ctrlp.vim
- Vimãã©ã°ã¤ã³ã®æ¡å¼µæ©è½ãã©ã°ã¤ã³ãä½ã£ã¦Vimãããã«ä½¿ããããããã - 29th Sta.
- ctrlp.vimã®Extensionãæ¸ãã¨ãã«:NeoBundleLazy autoloadãèæ ®ãã¦g:ctrlp_builtinsããã®ã¾ã¾ä½¿ããªã - cafegale
- CtrlPã¨ã¯ã¹ãã³ã·ã§ã³ã§ãã¤ã©ã¤ã