Vimで括弧/クォートを自動補完
人がコード書いてるところを見ると、閉じ括弧を先に入力してひとつ戻ったり、あとで入力するつもりで閉じ忘れていたりと、無駄な苦労だなぁとおもうことがよくある。
Vimで以下の設定をしていると括弧やクォートを入力したときに自動で閉じてくれる。
Eclipseとか、VS.NETとかの一般的なIDEの動作に近い感じ。
inoremap { {}<LEFT> inoremap [ []<LEFT> inoremap ( ()<LEFT> inoremap " ""<LEFT> inoremap ' ''<LEFT> vnoremap { "zdi^V{<C-R>z}<ESC> vnoremap [ "zdi^V[<C-R>z]<ESC> vnoremap ( "zdi^V(<C-R>z)<ESC> vnoremap " "zdi^V"<C-R>z^V"<ESC> vnoremap ' "zdi'<C-R>z'<ESC>
(^VはVimだとCtrl-v Ctrl-vで入力)
インサートモードのときは自動で閉じる。
ビジュアルモードの時は自動で囲んでくれる。
ちょっとした設定だけど、これでかなり楽になってるなぁ。showmatch とかいらない。
もっとちゃんとした plugin が vim online にありそうだけど、探した範囲ではないなぁ。
英文書いててアポストロフィーの入力でシングルクォートが補完されてしまったりと、結構適当だけど、まぁこれで今のところ満足してる。
ただ、周りにVimつかう人がいないので、こんな設定教えても無駄だという・・・
あと、HTML/XML のタグ自動補完はxmledit 使ってる。
追記
2006年11月14日 yoshiki vimこういうのって癖になっちゃってて、設定すると逆にストレスになったりもするし、逆にいつもウザイなーと思ってるところを設定するとちょー楽になったりもする。
冒頭ではああいうふうに書きましたが、俺もそう思います。
万人に有効な設定ではないですね。
でも、これはしてみる価値はある設定だとおもいますよ。
Emacsでどうやるのかは知らないけど、なければ作って試してみてください(>_<)g。