Emacsでrubyを使う

先日参加したオープンソースカンファレンス広島でお話しした @eielh さんに影響されてEmacsrubyを書きたくなりました。
ちなみに普段Railsの開発で使用しているのはRubyMineというRails用のIDE。メソッドジャンプやコード補完などRailsに特化しているだけの事はあり満足度は高いです。ただ、勉強会でコードを見せ合う際にIDEを立ち上げるのはなんともかっこ悪い...(僕だけかな?)ここはviやEmacsを華麗に使いこなしたいのです。つまりミエだけですw

突発的に思いつきtwitterで @ore_public さんに声をかけたところ時間を空けてくれました。ついでにATNDを立てたら中国GTUGのイケメンマネージャー(@ttyokoyama)も来てくれるとのこと。ありがてぇありがてぇ。

目標

Emacsを日常使える程度のショートカットキーを学習する。
EmacsRuby on Railsのコード補完およびメソッドジャンプを実現すること。

環境

MacOSX Lion
home brewでインストールしたGNU Emacs 23.3.1

ショートカットキー

とりあえず次のキーで日常使用する作業はできそうな感じです。
ctrl + space で範囲選択
ctrl + w でカット
esc + w でコピー
ctrl + y でペースト(ヤンク)
ctrl + _ でアンドゥ
ctrl + kでカーソル行から行末までカット
ctrl + a で行頭(safariのTextAreaでも使用できる)
ctrl + e で行末(safariのTextAreaでも使用できる)
ctrl + g でコマンドを中断(こまったら押すこと!)
ctrl + o でバッファ間を移動
ctrl + 2 で上下分割
ctrl + 3 で左右分割
ctrl + 1で分割解除
ctrl + vでページダウン
esc + v でページアップ
ctrl + s でファイル内検索

grep検索

esc + x でgrep-findと入力してEnter
.の箇所をディレクトリに書き換え、-e の後に検索文字列を入力する。

Ruby on Railsのコード補完およびメソッドジャンプを実現

rsenseを組み込むことでコード補完ができるようになりました。
余談ですが、初めrsenseのオフィシャルサイトに書いてあるとおりに.emacsファイルを設定してもうまく動作させることができませんでした。
同じ現象の人は、.emacsの行頭に

(require 'cl)

って入れるとうまく動くかも。(Thanks > @eielh)

達成度

日常よく使う操作についてはショートカットキーを教えてもらったので多分大丈夫です。
rsenseによるメソッドの補完は良い感じ。これはRubyMineと同等だと思います。
メソッドやクラスの定義元へのジャンプは残念ながらうまく動作せず。ファイルをまたいだ場合とか全くジャンプしないので致命的です。
rsenseとは別にauto-completeによる擬似補完もいい感じなんだけど、cssの補完がおかしいです。color: redとか入力して;を押したタイミングでまた補完が走ってしまいます。cssについては補完をoffにしたほうがいいかも。

感想

と、いうことで、半分ぐらいの達成度でしょうか。最後は「RubyMineは良くできてる」って結論に落ち着いてしまいました。
自分のEmacsについてのレベルは多少上がったと思うので、gitのコミットメッセージを書いたり、ruby単体のソースを書く際は積極的に使っていこうと思います。