SyncEdit 2 — RubyMineでSublime Text 2のようなマルチ編集を行なうプラグイン

こんにちは、hachi8833です。Sublime Text 2の強力な機能の一つに「同時編集」があります。たとえば、文字列を選択してから⌘-Dを押すと、以降に出現する同じ文字列が次々に同時に選択され、それらを同時に編集できるというものです (Sublime Textの動作についてはこちらの動画を見るのが一番早いと思います)。

一度使ったらもうやめられないこの機能をRubyMineでも使えればと常日頃から思っていたのですが、これにかなり近い動作をするSyncEdit 2というプラグインを見つけました。このプラグインはRubyMineにとどまらず、WebStormなどJetBrainsの他のIDEでも使用できるようです。

導入方法および使用法は簡単です。以下はRubyMine 6とMac OS X Maverics環境を前提にしています。

インストール方法

  1. SyncEdit 2のリンクからSyncEdit2をダウンロードします。
  2. RubyMineを起動し、Preference (⌘+,)のPlugins
  3. で [Install plugin from disk] をクリックし、ダウンロードしたプラグインを選択します。
    SyncEdit2-2

  4. Preferenceを閉じ、アラートに従ってRubyMineを再起動します。

使用方法

  1. 編集したい領域を選択します。
  2. step1

  • Ctrl-SでSyncEditモードに入ります。選択範囲の反転が解除され、周りが枠で囲まれています。
  • step2

  • この状態で単語を編集します。すると、同じ単語が同時に編集されます。大文字小文字は区別されますので、Bookを編集してもbookには影響しません。
  • step3

  • Escを押すとSyncEditモードは終了します。
  • Sublime Textと異なるのは、⌘+Dでの単語選択がないことです。その代りに単語は大文字小文字の区別付きで自動認識されます。

    SyncEdit 2による編集は基本的に単語単位となります。そのため、以下のような特徴があります。

    • 単語はスペースと記号で区切りを認識しているようです。このため、隣接する記号までは編集できません。これを回避するには、Preferenceで [Select whole words only]をオフにします。
    • syncedit2-3
      ただし、このオプションをオフにすると、bookを後ろから削除してboにした場合に、booksまで削除されてbosになってしまいます。
      syncedit2-5

    • 上のオプションをオフにしても、Sublime Textのように同時に改行を追加するようなことはできません。
    • 日本語も編集できます。上のオプションをオフにしておけば、日本語の部分マッチもかなり認識してくれます。日本語はいきなり後ろから削除すると同じ語が認識されないことがあるので、編集したい語をいったん選択してから削除すると認識されやすいようです。
    • syncedit2-4

    若干癖はありますが、RubyMineでSublime Textのあの操作ができるようになるのは感激です。JetBrainsが公式に対応してくれればベストなのですが。

    追伸: 自分は使っていませんが、vimにはvim multiple cursor、emacsにはmultiple-cursorという追加機能があるんですね。Sublime Textのマルチ編集機能のインパクトの大きさがうかがえます。

    Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

    この記事の著者

    hachi8833

    Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

    hachi8833の書いた記事

    週刊Railsウォッチ

    インフラ

    BigBinary記事より

    ActiveSupport探訪シリーズ