irbでTAB補完

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です