Vimプラグイン RubyJump v0.9.1 をリリースした
タグ: rubyjumpvimruby / 初版公開: 2014-05-11

デモ

rubyjump demo

リリース

XRubyJumpというvimプラグインを書いたが、本日これを大幅に機能拡張した最新版をリリースした。また、このリリースに合わせて、名前をXRubyJumpからRubyJumpに変更した。

主な変更点は以下のとおり。

  • ジャンプ候補のあいまいな補完が可能になった
  • RubyJumpが全ウィンドウを検索できるようになった
  • カレントウィンドウの検索はRubyJumpLocalとして残した
  • カーソル下の単語でジャンプするRubyJumpCursourを追加した
  • 同名の候補へRubyJumpNext/RubyJumpPrevで移動できるようにした
  • 前後の定義へRubyJumpForward/RubyJumpBackwardで移動できるようにした
  • カーソル移動の便利コマンドとしてRubyJumpNextForward/RubyJumpPrevBackwardを追加した
  • RubyJumpVersionコマンドでバージョンを確認できるようにした
  • その他バグフィックス多数

機能の概要

改めて紹介すると、RubyJumpはvimでRubyスクリプトを編集する際に、バッファ中のメソッド、モジュール、クラス定義に素早くジャンプするためのプラグインだ。

RubyJumpコマンドで開いている全てのウィンドウの、RubyJumpLocalコマンドでカレントウィンドウの、定義にジャンプすることができる。定義の選択にはあいまいな補完が利用可能だ。他にRubyJumpCursorコマンドでカーソル下の単語でRubyJumpすることができる。

またRubyJumpNextForwardRubyJumpPrevBackwardコマンドにより、ジャンプ直後に同名の別の定義に飛ぶことや、カーソル位置の前後にある別の定義にカーソル移動することができる。

設定例などはgithubの日本語READMEファイルを参照。

開発の動機と設計思想

Rubyの定義へ移動するには、ctagsを使ったタグジャンプや、rails.vimといったプラグインを使った方法がある。 これらは便利だが、タグジャンプはファイルを更新する度にタグを生成するのが手間だし、rails.vimはrailsの構造に依存していてrails以外では使えないという欠点がある。

もっと手軽にあらゆるRubyスクリプトで高速なカーソル移動をすることはできないものか、と考えはじめたのが開発の動機だ。

RubyJumpは、多くの場合、カーソル移動したいファイルは既に開いている、という仮定に基づいて設計している。 RubyJumpが目指しているのは、バッファ中の定義にいかに早く簡単にジャンプするか、ということだ。

バッファ中の定義に飛び先を限定しているので、タグの生成も不要で、特定のファイル構造に依存するということもない。 RubyJumpの機能は、あらゆるRubyスクリプトを対象に、即座に高速なカーソル移動が可能になるようになっている。