vimでautocloseの設定をする

  • 投稿日:
  • by

vimで括弧を自動で閉じるには設定が必要です。 普段は閉じ括弧も打っているのでそれほど必要性を感じないのですが、あれば多少便利かなとは思うので調べてみました。

ダイレクトな名前のプラグインはこちら。

https://github.com/Townk/vim-autoclose

無難に動きましたが、改行した時にインデントができず物足りない感じです。 設定では直せないようでした。

次に試したのはこちら。

https://github.com/kana/vim-smartinput

これは柔軟に設定ができそうです。 しかし、undoが分断される問題がありました。

最後に試したのがこちら。

https://github.com/cohama/lexima.vim

今のところ不満なく使えています。いくつか設定を加えています。 一つは、文末以外では無効になって欲しいので、

call lexima#add_rule({'at': '\%#.*[-0-9a-zA-Z_,:]', 'char': '{', 'input': '{'})

のような設定をしました。

また、自動クローズした文字が次の行にあってもタイプできるように、

call lexima#add_rule({'at': '\%#\n\s*}', 'char': '}', 'input': '}', 'delete': '}'})

のような設定をしました。 いずれも、小括弧、ブラケット、シングルクオート、ダブルクオートについても同様に設定しています。