Ruby関連本で評判が高いピッケル本(Dave Thomas著: プログラミングRuby)を
少しずつ読んでいたらirbの説明でTAB補完が出来ると書いてあった。
irbはRubyを対話的に実行することができるツールだ。
Rubyの動作をちょっと確認するのに便利だ。
requireすればライブラリや自分の書いたClassの動作確認もできる。
あれ?そんなにirbって便利だったっけ?
irbはRubyのプログラミングの時にたまに利用しているけど
TAB補完ができればいいなとかヒストリー機能ができれば
良いなとおもっていたらどうやら出来るらしい。
早速試してみる
irb -r irb/completion /usr/local/lib/ruby/1.8/irb/completion.rb:10:in `require': no such file to load -- readline (LoadError) from /usr/local/lib/ruby/1.8/irb/completion.rb:10 from /usr/local/lib/ruby/1.8/irb/init.rb:252:in `require' from /usr/local/lib/ruby/1.8/irb/init.rb:252:in `load_modules' from /usr/local/lib/ruby/1.8/irb/init.rb:250:in `each' from /usr/local/lib/ruby/1.8/irb/init.rb:250:in `load_modules' from /usr/local/lib/ruby/1.8/irb/init.rb:21:in `setup' from /usr/local/lib/ruby/1.8/irb.rb:54:in `start' from /usr/local/bin/irb:13
どうやらモジュールの関係で駄目らしい。
こういう場合はたいていreadline-develをインストールして
Rubyを再コンパイルすればよいと相場が決まっている。
CentOSを利用しているのでyumでインストール
yum -y install readline-devel
再度、Rubyのソースをconfigureしてmakeしてインストール
cd /usr/local/src/ruby-1.8.7-p174 make clear ./configure make make install
あとはコマンドラインのオプションとしてテスト
irb -r irb/completion irb(main):001:0> a = 2 => 2 irb(main):002:0> a.si(TABキーを押す) a.singleton_method_added a.singleton_methods a.size
OKであれば~/.irbrcへrequire文を挿入しておけば実行時にirb/completionを指定しなくて良い。
require 'irb/completion'
これでbashライクな入力インターフェイスとなる。
Ctrl+p、Ctrl+n、↑キー、↓キーで履歴(ヒストリー)を表示できる。
そして、irbを使えるこなせるようになるとよいが・・・・。
関連記事
- None Found