Emacs×Ruby - PryをEmacsで使ってみる
Pry = IRB.succ
あなたはRubyプログラミングで試行錯誤するときに
どういうツールを使っていますか?
irb?
xmp(rcodetools)?
irbはRubyをインストールしたときに
昔からついてくる対話的Rubyです。
シェルのインターフェースでRubyの式を
書いたら評価結果を表示してくれます。
その進化形がPryです。
で、pryとは何かというと、
『Pry = IRB + Shell + Ruby Shell + Debugger』
といった感じです。
Emacsの世界にあるeshellは
『Eshell = IELM + Shell + Emacs Lisp Shell』
なので、pryはRuby界のeshellみたいなものと
思っていただければよいです。
$ sudo gem install pry pry-nav
でインストールしてください。
Emacsで使う準備
pryはEmacsから使えます。
Rubyのパッケージには、ruby-mode.elなどのelispが
含まれていますが、古いのでMELPAのものを使います。
昔からEmacsでirbを使うにはinf-ruby.elを使うのですが、
MELPA版のinf-ruby.elはpryにも対応しています。
M-x package-refresh-contents
M-x package-install inf-ruby
そして、以下の設定をしてください。
==== pry-init.el
(require 'inf-ruby)
(setq inf-ruby-default-implementation "pry")
(setq inf-ruby-eval-binding "Pry.toplevel_binding")
;; riなどのエスケープシーケンスを処理し、色付けする
(add-hook 'inf-ruby-mode-hook 'ansi-color-for-comint-mode-on)
Emacsと併用するのでpryの設定ファイルである
.pryrcでemacsclientをエディタに設定してください。
==== ~/.pryrc
Pry.config.editor = "emacsclient"