とみふらの明るく楽しい日記

日記や俺用メモなどなんでもあり。

rcodetoolsをemacsで使う設定するときにはまったのでメモ

Ruby書くとき、emacsIDEみたいにコード補完できるようにしたくて、調べたらrcodetoolsのrct-completeを使えばいいらしい。しかしうまくいかなくて3時間ぐらいはまりました。結局のところPATHを通せばいいだけだったんだけど。こんなに無駄に時間食う僕のような素人なら最初からnetbeansとか使っといたほうがいいような気がするが、、、IDEか、emacsvimなどのeditor、どっちを使うべきなんだろうか・・・プログラミングの学習がしたいのにいつも環境の構築ばっかりしていてまったく成長の兆しがない。
ということでemacsrcodetoolsのrct-completeを使うための手順を自分にわかる程度にまとめておく。


1.まず、
$ sudo gem install rcodetools
で、rcodetoolsをインストール。


2.rcodetools.elをEmacsのload-pathに指定してるディレクトリにコピー
自分の場合はrcodetoolsは"/var/lib/gems/1.8/gems/rcodetools-0.8.5.0"にインストールされたのでそこからrcodetools.elをEmacsのload-pathに指定してるディレクトリにコピーした。


3.必要な実行ファイルのパスを通す(ここではまった。パス通せとか説明に書いてないじゃん・・・当たり前すぎるから?)
自分の場合は"/var/lib/gems/1.8/bin"にパスを通した。
$ export PATH=$PATH:/var/lib/gems/1.8/bin
.profileとかに書いとく。


4. .emacsに設定を書く

;;
;;rcodetools
;;
(require 'rcodetools)
(setq rct-find-tag-if-available nil)
(defun make-ruby-scratch-buffer ()
  (with-current-buffer (get-buffer-create "*ruby scratch*")
    (ruby-mode)
    (current-buffer)))
(defun ruby-scratch ()
  (interactive)
  (pop-to-buffer (make-ruby-scratch-buffer)))
(defun ruby-mode-hook-rcodetools ()
  (define-key ruby-mode-map "\M-\C-i" 'rct-complete-symbol)
  (define-key ruby-mode-map "\C-c\C-t" 'ruby-toggle-buffer)
  (define-key ruby-mode-map "\C-c\C-d" 'xmp)
  (define-key ruby-mode-map "\C-c\C-f" 'rct-ri))
(add-hook 'ruby-mode-hook 'ruby-mode-hook-rcodetools)

ちなみにこの設定は
http://www.takuto.biz/private/memo/changelog/2008-12-11.html#2008-12-11-2
からのパクり。


これで、rubyのコード書いてるときにAlt+Ctrl+i押すと補完候補が表示されるようになる。
あと、コード中に

1+1 # =>

って書いておいてCtrl+c Ctrl+d 押すと

1+1 # => 2

みたいになってデバッグしやすくなる。

他の機能はまだ使ってないのでよくわかんない。