emacsでjavaが快適に開発できるかのテスト

この日記は随時更新する予定。
Wikiのほうがいいかもしれないけど別にいいや。めんどいし。

2010/8/17 追記:内容もう古いです。今は malabar-mode (コチラ)を使っていますが、仕事ではいまだに eclipse から抜け出せず。

始めた理由
    • 仕事で一番よく使う言語がjava
    • 現行の環境(eclipse)に不満
      • 重い
      • NetBeansじゃJavaしか書けなそう
      • IDE厨を卒業したい
      • シェルとの同期がとれない
      • 新しいツールもGUIプラグインが出るまで使いづらい
      • 外部ツール使うとファイルの同期がとれない
      • 結果的に常にプラグイン待ちになるのが嫌
      • 他言語も使うし、その場合だけ環境が違うのが嫌
    • XEmacs使ってるからEmacs >> Vim
    • linux使いこなすならまず敷居の低いGUI/デスクトップから
    • 普段使いにすれば自然と移行もできる
    • ubuntuがいい感じなのでデスクトップに最適
    • =普段ubuntu+emacsjava書いてれば他の言語もそれで書ける
    • Meadowでもいいけど、ubuntuならきっと敷居低いから大丈夫。
やりたいこと
    • emacsの環境構築
      • 普通これはやるだろ、という定石的な設定
      • 普通これは入れるだろ、という定石的なパッケージ
      • できればウインドウを3ペインにして使いたい厨
    • デフォルトのemacsに比べてeclipseが快適だったところをemacsでも実現
      • プロジェクト単位で管理するところ。最終的にjarなりwarなりにビルドするわけだから、クラスパスやらコンパイル作業の単位やら何やらも当然プロジェクト単位でないとやりにくい。普通のエディタはファイル単位で開くから、そこをなんとかしたい。
      • ファイルのツリー表示と、マウス操作で展開するディレクトリ。他のアプリ(Firefoxとか)触るときは普通にマウス使うから、その流れでツリーもマウス使うでしょう。なのでキーボードだけでなくマウスでも使いたい。
      • 3ペインが崩れない
      • メソッドの入力候補がサクッと出てくる
      • メソッドの定義元や継承元クラスにサクッと飛べる
    • ポータビリティの実現。家でも使うし職場もいつまで同じじゃないし。持ち歩きたい。
      • USBで持ち歩いてファイル置いたら作業可能な環境
      • もしくはsvnか何かで同期して自宅サーバ経由で環境取得
      • 完全には無理かもしれないけどMeadowでも設定を共有してWindowsでも使いたい
      • 新環境へのセットアップは時間かかってもいいけど毎回悩みたくない。全自動にしたい
さて

参考書籍を読んでみたけど、カーソル移動とかは別にわかってる。
知りたいのは有効なパッケージライブラリの所在と使い方だ。
必要なパッケージが見つかったら基本的にEmacsのパスが通ったとこに展開して.emacsにロードする命令書けばいいらしい。

目をつけたライブラリ
    • ECB(Emacs Code Browser)。ブラウザといいつつ編集もできるらしい。
    • CEDET(Collection of Emacs Development Tools)。ECBが依存しているライブラリ。以下のライブラリをひとまとめにしたもの。
      • Semantic
      • EIEIO: Enhanced Implementation of Emacs Interpreted Objects
      • Speedbar
      • COGRE: COnnected GRaph Editor
      • EDE: Emacs Development Environment
    • JDEE(Java Development Environment for Emacs)。java-modeよりもリッチな機能を備えているらしい。

ぱっと説明を読んだところ、これで多分「左側にツリー表示したプロジェクトディレクトリから右側のエディタにソースを開き補完候補つきで編集、コンソールからmaven2でビルド」が実現できそうな予感。

参考にしてるURL

Emacs電子書棚

参考にしてる書籍

Meadow/Emacsスーパーチュートリアル (Front Programmer Series)

Meadow/Emacsスーパーチュートリアル (Front Programmer Series)

入門GNU Emacs (UNIX text processing)

入門GNU Emacs (UNIX text processing)