Vimのコロンとセミコロンを入れ換える

US配列のVimのみ";"と":"を入れ替えて使っていたので
JIS配列のPCにリモート接続した時にコマンドが打ちにくかった。

全部US配列の設定に統一しておけば良いんだろうけど、
都合によりそうもいかないのでこんな設定で使ってみる。

nnoremap <Space>sc :<C-u>SwapColon<CR>
command! SwapColon call SwapColon()
function! SwapColon()
    if maparg(';', 'n') == ':'
        nunmap ;
        nunmap :
        vunmap ;
        vunmap :
        nunmap q;
    else
        nnoremap ; :
        nnoremap : ;
        vnoremap ; :
        vnoremap : ;
        nnoremap q; q:
    endif
endfunction

一応コマンドも定義したけど正直使う機会が無いような…
そして機能的にはToggleなんだよなぁ…