Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

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

ironsand
思いついたアイデアをすぐに形にできる能力を身につけたいのでRailsを頑張って習得中。仕事ください。
http://programming.ironsand.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away