snippetをautocomplpopで補完する
id:ns9tksさんが作られているautocomplpopのv2.11以降でsnipMateと連携したsnippet補完が実装されています。これはLifechagingですね。
インストール方法
autocomplpopの設定は以下の通り。
" ============================================ " autocomplpop.vim " ============================================ let g:acp_enableAtStartup = 1 let g:acp_mappingDriven = 0 let g:acp_ignorecaseOption = 1 let g:acp_completeOption = '.,w,b,u,t,k' let g:acp_completeoptPreview = 0 let g:acp_behaviorUserDefinedPattern = '\k$' let g:acp_behaviorKeywordCommand = "\<C-n>" let g:acp_behaviorKeywordLength = 2 let g:acp_behaviorFileLength = 0 let g:acp_behaviorRubyOmniMethodLength = 1 let g:acp_behaviorRubyOmniSymbolLength = 1 let g:acp_behaviorPythonOmniLength = 1 let g:acp_behaviorXmlOmniLength = 1 let g:acp_behaviorHtmlOmniLength = 1 let g:acp_behaviorCssOmniPropertyLength = 1 let g:acp_behaviorCssOmniValueLength = 1 let g:acp_behaviorSnipmateLength=1
fun! GetSnipsInCurrentScope() let snips = {} for scope in [bufnr('%')] + split(&ft, '\.') + ['_'] call extend(snips, get(s:snippets, scope, {}), 'keep') call extend(snips, get(s:multi_snips, scope, {}), 'keep') endfor return snips endf
使い方
使い方は簡単で、「大文字」をいれるとsnippetが補完候補になるので、Tabでsnippet選択してEnter。後はTabでsnippetを展開していきます。
所感
snippet系の問題は、「snippet名を覚えられない」ので結局つかわなくなるということだったんですが、この問題が解決され、snipMateの補完が使えるようになりました。
snipMateでsnippetの書きやすさが改善され、autocomplpopとsnipMateの連携でsnippet補完が実現でき、今まで不自由に思っていた事が殆ど改善されました。
cool!