Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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内を評価して返してくれます。