エディタと言えばEmacs一択の数年だったが、自動構文チェックや補完機能の便利さにショックを受け、開発統合環境(IDE)の使用を検討することとした。
Eclipse3.7.0の使用は断念
Ubuntu11.10のリポジトリからインストールできるEclipseのバージョンは3.7.0である。
結論から言うとこのバージョンを使おうとは思えなかった。
- とにかく設定の反映が重い
何か設定した後にOKや適用を押すとしばらく待たされる。このため設定のカスタマイズは苦行となる。
- 不安定
Javaアプリのせいなのか不安定で、設定の変更が時間差で反映されたり、また下に述べるような不具合が再現したりしなかったりする。
- キーバインド変更
設定→キー→スキームに「Emacs」があるがC-fで前へ移動することなどはできず、別に「Emacs+」というスキームをインストールした上で*1、かつ個別にキーアサインをしなければEmacsライクなキーバイントで操作することはできない。
- キー入力を受け付けなくなる不具合
エディタにフォーカスがあるとき、一旦別のアプリケーションにウィンドウ切り替えて戻ってくるとキー入力を受け付けなくなる不具合がある。
Altメニューの入力は受け付けるので、メニューをW→G→Vと辿り、一旦次か前のビューに移った上でエディタに戻れば反応するようになるが、ウィンドウを切り替えて戻る度にこのキー操作をしてエディタにフォーカスを戻す苦行を強いられることになり実用的とは言えない。
設定に3時間半を要したあげく、使えないということが分かったことだけが収穫だった。実に不毛なことである。
素直にUbuntu12ないし13を使って最新版を入れればこのような面倒も不毛も無く、快適な環境だったのかもしれない。
NetBeans7.3でもUIの不具合が再現
NetBeans(バージョン7.3)を落としてきてインストールしたところEmacsキーバインドの設定も簡単だったし、カラースキームも簡単に変更することができた。唯一フォントが汚ないことだけが難点だったが、設定ファイルを変更することで解決できた*2。最初からこちらを使えば良かった…と思いきや、こちらでもフォーカスを失ないショートカットも含めてキー入力を一切受け付けなくなる問題が再現した(マウスクリックすればキー入力を受け付けるようになる)。Javaアプリはキーボードベースの操作が弱いことは把握していたが、これはもうOSネイティブアプリでない以上どうしようもない制限というか宿命なのだろうか。
NetBeans7.3でのUIの不具合を姑息な手段で回避
ウィンドウをAlt+Tabで他のアプリケーションに切り替え、再びNetBeansに切り替えるとフォーカスを失ないショートカットも含めてキー入力を一切受け付けなくなる上記不具合だが、このまま諦めるのも口惜しいので姑息な手段ながら不具合を回避するべく方法を調査した。
マウスでメニュー等をクリックさえすればキー入力を受け付けるようになるので、マウス入力を代行してくれるようなコマンドがあればよい。それがこちら*3で紹介されているxautomationパッケージのxteコマンドである。
xte 'mousemove x y'のようにすることでマウスがx,yに移動しxte 'mouseclick 1'とすることで右クリックとなる。これをシェルスクリプトにwmctrlコマンドと組合せて記述してグローバルホットキーに登録し、ウィンドウの切り替えと同時にクリック動作が行なわれるようにする。NetBeansのウィンドウ位置を固定とする必要があるが、これによりこの問題を当座回避することができる。
可能であればxwininfo的なコマンドでウィンドウ座標を取得し、そこからの相対座標でクリック位置を指定したいところだ*4。
(追記)自動でレポジトリを生成してくれていた
使い初めて4ヶ月経ったが、今頃自動でレポジトリを生成し、かつ差分を見易く表示してくれる履歴機能があることに気が付いた。現在のところは学習用途のため使うことは無いのだが、Webアプリを製作するなど大掛かりなプログラムを組めるようになった際に役立つことだろう。
以下に各機能の紹介記事があった。
*1:Eclipse への Emacs 風キーバインド設定 - snufkonの日記
*2:NetBeans/フォントを綺麗にする - TOBY SOFT wiki
*3:xautomation自動マウス&キーボード操作マニュアル | 外道父の匠
*4:xwininfoコマンドは-nameオプションにより端末からウィンドウを指定することができるが、ワイルドカード及び正規表現を使うことができない