irbを便利につかうために for windows
Route 477(2007-08-01)
↑こちらを参考に、まずは
プログラミング言語 Ruby リファレンスマニュアル
↑completion機能をwindows で irb起動時に使えるようにしましょう。
irb実行中に(TAB)を押すとコンプレーション(入力補完)してくれる機能ですね。
最初に、結論
windowsの irb は .irbrc の場所を知らないようなので、指定します。
C:\>irb irb(main):001:0> IRB.conf[:IRB_RC] = "c:\.irbrc" => "c:.irbrc"
それで、 c:\.irbrc というファイルを作り、設定します。
- c:\.irbrc
require "irb/completion"
これで irb 起動時に入力補完機能が使えるようになります。
あとは、いろいろ追加していけばおkですね。
※.irbrcの場所はご自由にどうぞ。
ということで、以下は試行錯誤の過程を観たい方はどうぞ。
windows の .irbrc はどこだ?
Route 477(2007-08-01)
こちらにホームディレクトリは、
と書いていあるのですが、windowsで行うと、
C:\>ruby -e 'print ENV["HOME"]' nil
nil なんです。。
[Ruby] irbにおける文字化け -Rubyを勉強を始めようと思いまして、Acti- その他(プログラミング・Web制作) | 教えて!goo
↑こちらに
.irbrc の置き場所などはマニュアルを参照してください。
Rubyリファレンスマニュアル - irb
http://www.ruby-lang.org/ja/man/?cmd=view;name=irb~ というのはUnixで使われるシェルで用いられる、ユーザーの
ホームディレクトリを表すものです。
Windows版であれば、環境変数 HOMEの値が用いられます。~/.irbrc
は
%HOME%/.irbrc
のように読み替えてください。
この環境変数は通常は設定されませんので、ご自分の環境に合わせて
設定してください
(HOMEDRIVEとHOMEPATHならあらかじめ設定されていると思います)。
と書いてありますので、
C:\>ruby -e 'print ENV["HOMEPATH"]' \Documents and Settings\福重伸太朗 C:\>ruby -e 'print ENV["USERPROFILE"]' C:\Documents and Settings\福重伸太朗
らしい。
windows の .irbrc は読み込まれているのか?
irb起動時に .irbrc は読み込まれているのでしょうか?
C:\>irb irb(main):001:0> conf.rc => true
読みこまれているらしい。
では、
\Documents and Settings\福重伸太朗\.irbrc
があるのでしょうか・・・・・・・ない・・・・・。
ないのに、読み込まれているのでしょうか・・・。
とりあえず、
C:\Documents and Settings\福重伸太朗\.irbrc
というファイルを作り、中に
require "irb/completion"
を書いて irb を起動して、入力補完機能が使えるかやってみましたが、できませんでした・・・。
もちろん、irb起動中に
require "irb/completion"
すれば入力補完機能は使えるようになります。
うーん。windowsの .irbrc はどこにあるのでしょうか・・・。
IRB.conf[:IRB_RC] で .irbrc の場所をしいする
どうやら、.irbrc の場所を irb が知らないようです。なので、指定しましょう。
こちらに、
IRB.conf[:IRB_RC]
というオプションがあります。
デフォルトでは nil っぽいです。
なので、
irb(main):004:0> IRB.conf[:IRB_RC] = "c:\.irbrc" => "c:.irbrc"
上記のように .irbrc の場所を指定して、
c:\.irbrc というファイルを作ります。
- c:\.irbrc
require "irb/completion"
それで、再度トライ。
C:\>irb irb(main):001:0> a = [] => [] irb(main):002:0> a.in a.include? a.instance_eval a.index a.instance_of? a.indexes a.instance_variable_defined? a.indices a.instance_variable_get a.inject a.instance_variable_set a.insert a.instance_variables a.inspect irb(main):002:0> a.in
おおおおおぉ。入力補完機能が効くようになりました!
一件落着。
環境
C:\>ruby -v ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]