概要
irb はデフォルトで ~/.irbrc
を読み込んでくれます
プロンプトの表示や補完、履歴の保存などいろいろ irb をカスタマイズする設定を書くことができます
今回はオススメする設定の一部を紹介したいと思います
環境
- macOS 10.14.4
- Ruby 2.6.2p47
- irb 1.0.0
履歴を保存する
IRB.conf[:SAVE_HISTORY] = 100
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-save-history"
100 件分の履歴を HISTORY_FILE
で指定したファイルに保存してくれます
ここで保存された履歴は Ctrl+p や Ctrl+r などで再度使用することができます
ファイルはただのテキストファイルなのでディスクの容量に余裕があれば 10000 件くらい保存してもいいと思います
コマンドを補完する
require 'irb/completion'
これだけで TAB で Ruby の標準のメソッドや定数を補完してくれます
試しに「pu」まで打って TAB で補完すると puts
などの候補が表示されると思います
プロンプトをカスタマイズする
IRB.conf[:PROMPT][:DEFAULT] = {
:PROMPT_I=>"%N(%m):%03n:%i> ",
:PROMPT_N=>"%N(%m):%03n:%i> ",
:PROMPT_S=>"%N(%m):%03n:%i%l ",
:PROMPT_C=>"%N(%m):%03n:%i* ",
:RETURN=>"=> %s\n"
}
上記はデフォルトの設定です
%N
や %m
などのフォーマット文字列が使えます
- %N・・・irb
- %m・・・main
- %03n・・・3 桁の行番号
- %i・・・インデントの数
- %l・・・文字列中のタイプ
%l
がわかりにくいですが例えば each を使っている場合は *
になります
irb(main):007:0> a.each { |aa|
irb(main):008:1* puts aa
irb(main):009:1> }
wirb
gem install wirb
require 'wirb'
Wirb.start
これで出力結果に色が付きます
余談ですが irb -d
で起動すると以下のようなエラーが発生しました
が require は正常に動作しているので問題ないです
おそらく $LOAD_PATH
の順番が影響しているっぽく始めにロードしたパスではライブラリを見つけられなかったのですが後から検索したパスでうまく require できたんだと思います
Exception `LoadError' at /usr/local/Cellar/ruby/2.6.2/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54 - cannot load such file -- wirb
Exception `LoadError' at /usr/local/Cellar/ruby/2.6.2/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54 - cannot load such file -- 2.6/psych.so
Exception `LoadError' at /usr/local/Cellar/ruby/2.6.2/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:132 - cannot load such file -- 2.6/psych.so
Exception `NameError' at /usr/local/Cellar/ruby/2.6.2/lib/ruby/2.6.0/psych/class_loader.rb:68 - uninitialized constant BigDecimal
Exception `NameError' at /usr/local/Cellar/ruby/2.6.2/lib/ruby/2.6.0/psych/class_loader.rb:68 - uninitialized constant Date
Did you mean? Data
Exception `NameError' at /usr/local/Cellar/ruby/2.6.2/lib/ruby/2.6.0/psych/class_loader.rb:68 - uninitialized constant DateTime
設定の一覧を確認
irb
で irb を起動して
irb(main):003:0> IRB.conf
で確認できます
参照する場合は
puts IRB.conf[:VERSION]
irb 1.0.0 (2018-12-18)
こんな感じで参照できます
最後に
irb を拡張する方法を紹介しました
.irbrc
には Ruby そのものが書けるのでモジュールを拡張したりすれば更にいろいろできます
デフォルトの設定でもだいぶ強力なのでまずはデフォルトに慣れておくのが良いと思います
0 件のコメント:
コメントを投稿