LoginSignup
27
24

More than 5 years have passed since last update.

Emacs で rcodetools を使って "=>" で値を表示する

Posted at

Rubyの勉強会などでプレゼンを行ってる人を見てると

10.times do |i|
  i                             # =>
end

の状態から

10.times do |i|
  i                             # => 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
end

の状態にパッと変える事がよくあるんですが「あれは何なのだろう?」と疑問に思いながらも他のことで頭がいっぱいで質問できずにいました。

xmpfilter

これは xmpfilterという物の機能らしく rcodetools に含まれています。
xmpfilter自体はrubyで書かれたプログラムでそれを rcodetools.el から呼び出すのですが、PATHを設定してないとLoad Errorになり、値を表示してくれるどころかバッファーの中身が全部消されます。一瞬何が起こったのかわからず混乱すること請け合いですね。

環境

Cocoa Emacs 24
MacbookとUbuntuでDropboxを使ってEmacsの設定同期を行ってる

rcodetools の インストール

$ gem install rcodetools でインストールすると el ファイルも一緒にインストールされます。

rbenv を使ってるなら $ rbenv rehash も忘れずに。

俺はすっかり忘れてひどく時間を無駄にしました。いやマジで。gccの入れなおしとかまでしました。10時間ぐらい無駄に…。

設定

~/.emacs.d/inits/30-rcodetools.el
(require 'rcodetools)
(setq rct-find-tag-if-available nil)
(defun ruby-mode-hook-rcodetools ()
  (define-key ruby-mode-map (kbd "<C-tab>") 'rct-complete-symbol)
  (define-key ruby-mode-map (kbd "<C-return>") 'xmp))

;(global-set-key (kbd "<C-return>") 'xmp)

(add-hook 'ruby-mode-hook 'ruby-mode-hook-rcodetools)
(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)))

試しに使ってみる

M-x ruby-scratch して

a=1
b=3
a+b

して a+b の行で M-; (comment-dwim) を二回入力すると # => が入力されるので、そこで Ctrl + Return を入力すると結果が表示される。ステキ!

rct-complete-symbol が何を補完してくれるかはよくわかんない。だってどのサイトもどのタイミングで補完コマンドを打ったら何が補完されるか書いてないんですもん。

問題対策

・何故かバッファーの内容が消える
→Path通ってないんのでは?

参考

rcodetoolsをemacsで使う設定するときにはまったのでメモ - とみふらの明るく楽しい日記
http://d.hatena.ne.jp/tomitake_flash/20100220/1266662660

rvm で ruby 1.8.7 インストール時にエラーになったので gcc 4.9 を homebrew で入れた | EasyRamble
http://easyramble.com/install-gcc-with-homebrew.html

Ruby1.8系をrbenvで追加インストールしたら少し嵌る - Fevnirのブログ
http://fevnir-r.hateblo.jp/entry/2013/03/11/215422

rcodetoolsが素晴らしすぎる件 - I am Cruby!
http://d.hatena.ne.jp/authorNari/20090523/1243051306

EmacsでRubyの開発環境をめちゃガチャパワーアップしたまとめ | Futurismo
http://futurismo.biz/archives/1295

27
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
24