Eclipseからexコマンド(いわゆるviのコマンド)を実行するプラグインをリリース

0x00. exコマンドとは


Eclipse上で開発する場合、悲しいのはviエディタが使えないことである。過去にviに似せた操作を可能とするプラグインを試したことがあるが、満足行く出来ではなかった。そのため、いつしか筆者は「Eclipse上ではごく普通のエディタ操作を行い、ターミナル上ではviを使う」という使い分けに慣れていった。

EclipseのJavaエディタ等も、別に慣れてしまえばそれほど問題はない。筆者はThinkpadタイプの赤ぽっち付きキーボード愛用派であることから、カーソル操作についても手のポジションを変更せずに行えるというのが大きいのかもしれない。EclipseのJavaエディタではコード補完等の便利さが際だつため、特にviじゃなくてもいいな…と思いながらいつのまにか時は過ぎていた。

しかし、このように使い分けることを決めた後でも、いつも「ぬぁ〜、これが使えればナァ(;´Д`)」と不満に思うのが、exコマンドだ。

「exコマンド」と言われてもぴんと来ないかもしれない。プログラマの中には「三次元は面倒くさい。二次元萌え〜」などと言うモノがいるようだが、これをさらに突き詰めると、一次元萌えとなる。つまり線である。このようなプログラマは通常よく使われる二次元(複数行を面で表示する)のエディタではなく、1次元(1行しか表示しない)のエディタを好む。これがexエディタである。実はあなたのシステムにも普通にexエディタはインストールされているだろう。通常/usr/bin/exにある(Windowsを除く)。

冗談はよいとして、要するにexはviエディタでコロンに続いてコマンドを実行するやつの実体である。詳しくはWikipediaを参照のこと。例えばviエディタで編集中に、3行目から5行目まで削除したい場合などには

:3,5d

などとする。これが慣れると病みつきになる便利さである。筆者はviの覚え立ての頃は「viエディタの良さは、カーソルの移動がキーボードでできることだ」と思っていたのだが、慣れてくるとexコマンドが使えることこそがviの良さであるという風に認識が変化した。

0x01. Eclipseプラグインからexコマンドを呼び出す


Eclipseのエディタでもexコマンドが使えれば便利になると考え、プラグイン(名前はExEdit)を作成した。閉店間際のスターバックスコーヒー東戸塚店で1時間、さらに帰宅後に1時間で動くモノができた。使用イメージは以下のようになる。

以下の画像で、Javaエディタ部分に記されているコードには特に意味がない。ここでは3行目からhoge、fuga、gyoeというコメントが書かれていることに注目してほしい。

まず、3行目を5行目に移動させてみる。以下のように、ExEditという小さなViewのテキスト入力欄にexコマンド(ここでは「3m5」となる)を入力し、Enterキーを押す。すると次の画像のように3行目(hogeと記述されている行)が移動する。

2番目の例として、3行目から5行目までを削除してみる。exコマンド(ここでは「3,5d」となる)を入力し、Enterキーを押すと、以下のようになる。

このようにEclipse内部でexコマンドが非常に自然に使えるようになり、とても便利である。

0x02. ダウンロードとインストール


ダウンロードは以下のURLから。

http://www.jumperz.net/tools/net.jumperz.app.ExEdit_0.9.0.201104162218.jar

このファイルをEclipseのpluginsディレクトリ以下に直接コピーし、Eclipseを再起動することでインストールされる。「General」に分類されているExEditというviewを開けば使えるようになる。

jarファイル内にはソースコードも含まれている。ライセンスは(とかいうほどのものでもないのだが)GPLとする。

0x03. 使用上の注意など


このプラグイン実装は内部でexコマンドを実際に呼び出しているため、exコマンドがインストールされていない環境では動作しない。つまりWindowsではほぼ動かないと思ってもらった方がよい。UbuntuとMacOSでは動作確認済みである。

Eclipse側でファイルを編集した後に、かならず保存してからExEditを使う必要がある(編集中の内容が保存されていない場合は、エラーダイアログが出るようになっている)。

ExEditは裏側でexコマンドのプロセスを起動して直接対象のファイルを書き換える。そのため、Eclipseは外部でファイルが書き換えられたことを検知してダイアログ(変更された内容をワークスペース側に反映させるか?Yes/No)を出し、ユーザがyesを選択する(単にEnterキーを押せばいい)、という動作が正常な動作となる。上の例ではシンプルに動作を示すためにこのダイアログが出てくることを省略している。

ファイルを直接書き換えるため、万が一の事故には注意して頂きたい。当然ながら当方は使用に当たって一切の責任を負わないものとする(Eclipseが普通に履歴を保存してくれるので万が一データが消えても問題ないと思うが…)。

また、ExEditは非常に小さなスペースで済むので、viewのサイズは最初に開いた際に小さくするのが吉である。

0x04. その他お願いなど


なかなか普通に便利なプラグインだと思うので、是非使って頂き、@kinyukaまでフィードバックしてもらえればうれしい。また、アイコンが超手抜き(2秒くらいで作った)なので、作っていただければありがたい。

それではみなさま、素敵な一次元ライフを。

Advertisements

One Comment on “Eclipseからexコマンド(いわゆるviのコマンド)を実行するプラグインをリリース”

  1. […] 以前のエントリに書いたようにDoormanのアップデートサイトは用意しないつもりだったのだが、Eclipse Marketplaceを眺めていて考えが変わった。意外と多くのソフトウェアがきちんとアップデートサイトを用意しているのだ。もしかしたら今どきのEclipseユーザはjarファイルを直接pluginsフォルダに突っ込むなどということはしなくなっているのかもしれない。Eclipseからのアップデートサイトの使い方も、なれてしまえばURLひとつで行けるため楽な気もする。ということでjumperz.net上に/update/というパスを用意し、そちらでEclipseからのリクエストを受け付けるようにした。現在Doormanだけでなく、ExEditもインストールできるようになっている。 […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s