vim-insert-point と vim-smartinput

導入

先日、vim-insert-point というものを作ったが、 そもそも似たようなプラグインとして vim-smartinput というものがある。

結構動きが違うが、目的は大体のユーザは同じなんじゃないかなーと思ったので比較してみる。

本題

勝手に vim-smartinput と vim-insert-point を比較してみる。 結論を先に書くと、現状だと vim-simartinput のほうが明らかによい。

比較

vim-insert-point

  • メリット
    • 特に何も入力せずに、次の入力に移動する定義を簡単に書ける
    • 一応、機能として select mode になる機能があり、これは割りと気持ち良い
  • デメリット
    • テストが書かれていない
    • 細かく移動したい場合と大きく移動したい場合が割りとまちまちで気持よく移動できない(定義次第ではある)
    • 上記に被るが、filetype 毎に移動先は大きく変わるので設定を書きまくらないと気持よくならない
    • そもそもの設定例が少なく、入れただけで気持ち良い移動にならない

vim-smartinput

  • メリット
    • テストが書かれている
    • インストール直後から割りと気持ち良い入力ができる
    • カスタマイズ方法が汎用的である
      • vim-insert-point は、次の定義位置に移動する際に、カーソル位置から次の定義位置までの正規表現しか書けない
      • vim-smartinput は、カーソル位置より前のテキストに対しても正規表現が書ける(前の文字が( の場合は無視する等)
  • デメリット
    • 入力位置を移動するためのプラグインではないため、何らか入力した際に移動するという動作が基本となっている
      • zencoding 的な「次の入力位置への移動」みたいなのは結構頑張って設定しないとだめ

結論

今のところは普通に vim-smartinput を使ったほうがいい。 基本的にユーザは「括弧を入力したらペアの括弧を入力してその後に括弧を抜ける」 という問題に対する解答を求めている場合が多い気がするので、vim-insert-point はそこをサポートしてないし。

ただ、両方使うという手はあると思っている。 ペアを入力する機能を vim-insert-point につける気はないのかというと「ある」といえばあるのだが、 vim-smartinput がちゃんと作られているしあんまり意義を感じていない。