Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

emacsでirbを使うinf-ruby

inf-rubyemacsirbを使う拡張です。
...今迄ですか?
泥臭くmulti-termを開いてirbとかタイプしてました(

導入

M-x package-install [RET] inf-ruby [RET]

enhanced-ruby-modeを使っている場合はinit.elに

(add-hook 'enh-ruby-mode-hook 'inf-ruby-minor-mode)

普通に使う

M-x inf-ruby

とやれば、起動します。

ちょっと便利な使い方

[1,2,4].map{|a|a}

を選択した上で

M-x ruby-send-region

とすると、現在実行中のirb

irb(main):008:0' irb(main):009:0' irb(main):010:0' => [1, 2, 4]

と、範囲内だけ実行してくれる便利な機能もあります。
部分だけ実行したいだけの場合は重宝します

irb内でa = 20とやった上で

if a == 20
  p 12
elsif
  p 23
end

p 12あたりで

M-x ruby-send-definition

と評価すると

irb(main):029:0' irb(main):030:0' irb(main):031:0' irb(main):032:0' irb(main):033:0' irb(main):034:0' irb(main):035:0' 12
=> 12

といったように、definition内を評価して返してくれます。