改行時に中括弧を補完する

会社でeclipseの使用がルール化されてしまったので久々に触ってます。
なんか重かったりマウス酷使しないといけなかったり訳のわからん機能多かったりでげんなり気味ですがvrapper入れてなんとかリハビリ?してます。

ただエディタの機能で改行するときに行の最後が中括弧({)だったら反対側の中括弧(})をいい感じの位置に補完してくれるのが便利だったのでvimでもやってみました。

inoremap <expr><CR> <SID>ExCr()
function! s:ExCr()
    if col('.') != col('$')
        return "\<CR>"
    endif
    let l = getline('.')
    if l =~ '{$'
        return "\<CR>}\<Up>\<End>\<CR>"
    elseif l =~ '($'
        return "\<CR>)\<Up>\<End>\<CR>"
    elseif l =~ '[$'
        return "\<CR>]\<Up>\<End>\<CR>"
    else
        return "\<CR>"
    endif
endfunction

これで

func() {
        ^

↑の時に改行したら

func() {
    
    ^
}

↑こうなる
これでまぁまぁそれなりOK。

.vrapperrcも鍛えないとなぁ。