spiritlooseのはてなダイアリー このページをアンテナに追加 RSSフィード

2006-11-13

[]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。

buzztaikibuzztaiki 2006/12/04 14:03 使う人いるのかなぁと思いつつ、emacs版を作ってみました。

通りすがり通りすがり 2007/03/31 19:40 参考になりました.ありがとうございました.

dodoyadodoya 2008/05/12 11:31 (で()を自動で出すのはいいけど、カーソルがこの間に来ないか悩んでました。<LEFT>で一文字戻るんですね、助かりました。

igrepigrep 2008/11/06 14:56 ちょうど探していました。
ありがとうございます。

通りすがり通りすがり 2011/02/17 18:44 いただきました(^^)v

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証