at kaneshin

Free space for me.

括弧の処理、キーマップ

コーディングしているときに、括弧を入力しないことはないですよね?

そこで、Vimを使ってる人は大体

inoremap ( ()<left>

inoremap () ()<left>

のようにマッピングしているのでは?(他の括弧や、クオーテーション含む)

実際、これって

for (int i = 0; i < n; i++)

まで入力したあと(i++まで入力)、結局括弧を出るのに、Ctrl+[ 押して、Shift+aを入力するか、など、結構気になってました。

人によっては、インサートモードでもキー移動ができるように

inoremap <c-l> <left>

と、マップしている人も多いと思います。(先月までやってました。
マップしていると、Ctrl+l を入力すればすぐ括弧を出れますが、Ctrl+l を押すコストが結局かかってて何か気になる。

そこで、テスト的に下記のようにマップしてみた

inoremap ()h ()<Left>
inoremap (); ();<Left><Left>
inoremap (){ ()<space>{<cr>}<esc>kA<left><left><left>

何が違うの?って言われたら、括弧だけで移動はしないようにしました。

ここら辺の設定は個人にすごく依ると思いますが、何か良い設定やプラグインを知っていたら教えてください。

きっと、定義したマップもすぐ使いにくいとか言って

inoremap () ()<left>

に戻すの100ペリカ。