反省はしても後悔はしない

Vim とか備忘録とか。それと関数型言語勉強中

vim-smartinput と vim-endwise が競合した時の対処法

vim-smartinput も vim-endwise もどちらもすごく良いプラグインなのですが、2 つ一緒に使ってると smartinput の C 系の中括弧入力がうまくはたらかなくなってしまいました。

↓正常時

if (hoge) {
  #
}

vim-endwise と競合時

if (hoge) {
#}

原因

vim-smartinput も vim-endwise もどちらもインサートモードの <CR> をマッピングしているのでそれが競合したようです。

対処法

vim-endwise が対応する filetype のみでバッファローカルなマップを定義します。

let g:endwise_no_mappings = 1
autocmd CohamaAutoCmd FileType lua,ruby,sh,zsh,vb,vbnet,aspvbs,vim imap <buffer> <CR> <CR><Plug>DiscretionaryEnd

とりあえずは、これで治りました。