IntelliJ IDEAへの不満
ここ一ヶ月と少し、IntelliJ IDEAでscalaのコードを書いた。IntelliJ IDEAでscalaのコードを書くのは多分メジャーで、設定をあまり頑張らなくても型の表示や補完をしてくれる。scalaに慣れていない人にとってはありがたいサポートだが、慣れてくると不満が出てくる。例えば以下のようなことだ(書いていて思うけど、完全に老害っぽい感じだ)。
- emacsキーバインド「っぽく」するアドオンがあるが、「っぽく」であって完全にemacsキーバインドというわけではないので、あれがないこれがないという状態になる
- キーバインドを追加すればできるようになるが、無限にあるような気分がして、安心できない
- git grepの結果をエディタでそのまま開くのは非常によく使うので、エディタの中からさくっと引けるようにしておきたいが、
helm-git-grep
のようなことができない- helmやanythingっぽいインターフェイスがないのは辛い
- terminalとIDEAを行ったりきたりする必要があるが、terminalだけで完結しないため何度もアプリケーションを切り替えないといけない
emacs -nw
で起動して、iTerm2をCtrl-i
で常に呼び出せるようにしていたので、IDEAのためにアプリケーションの切り替えをするのはダルすぎた...- IDEAの呼び出しにホットキーを割り当ててみたが、いいキーの数は限られている
- gitのcommitはmagitが最高なので、結局emacsは開かないといけない
コードが書けないといった致命的なものではないが、小さいことも積もってくると不満になってくる。
ensimeの導入
IDEAを捨ててEmacsにすぐ戻ればいいのだが、IDEAのような型の情報の補完は非常に強力だったので、そう簡単にEmacsに戻ってこれなかった。Emacsでもscalaのコードの型を表示するensimeというツールがあって、これに頼ることにした。同僚のid:shiba_yu36さんが導入記事を書いていたので、それを真似した。
小さいscalaプロジェクトだと使い慣れたemacsの環境で型情報の恩恵を受けることができて快適だったが、今やっている仕事のコードサイズだと補完に2-3秒くらいかかってたまにemacsが固まる状況であった。そのため、しばらくemacsとIDEAを行ったり来たりしていたが、auto-completeでの補完を我慢するとEmacsでもそれなりにscalaが書けるようになった(補完はできないが、symbolの型をminibufferに出したり、定義元にすぐ行けるといった必要なことはできる)。これで何とか生きていける...。
使っているキーバインド
色々あるけど、普段使うのはそんなに種類が多くないのでメモっておく。
キーバインド | 意味 |
---|---|
M-. | 定義元にジャンプ |
M-, | ジャンプする前の位置に戻る |
C-c C-c c | 現在のファイルを型チェック |
C-c C-c c | 現在のファイルを型チェック |
C-c C-v t | カーソル位置のsymbolの型をminibufferに表示 |
M-n | 現在のバッファで次のcompilation noteにジャンプ |
M-p | 現在のバッファで前のcompilation noteにジャンプ |
余談
最近の若者はEmacsじゃなくてAtomを使うらしいので、この際Atomに乗り換えようとしましたが、あえなく失敗した。手がEmacsに侵食されている。
Emacs実践入門 ?思考を直感的にコード化し、開発を加速する (WEB+DB PRESS plus)
- 作者: 大竹智也
- 出版社/メーカー: 技術評論社
- 発売日: 2012/03/07
- メディア: 単行本(ソフトカバー)
- 購入: 22人 クリック: 396回
- この商品を含むブログ (1件) を見る