锁定老帖子 主题:加强版irb
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-10-20
配置: 1. 安装以下gem: wirble, map_by_method, what_methods 2. 建立一个名叫_irbrc文件,内容如下: # Compiled by Cookoo # Reference: # http://drnicwilliams.com/2006/10/12/my-irbrc-for-consoleirb # http://pablotron.org/software/wirble/ require 'rubygems' require 'map_by_method' require 'what_methods' require 'wirble' require 'irb/completion' IRB.conf[:AUTO_INDENT]=true class Regexp def show(a) a =~ self ? "#{$`}<<#{$&}>>#{$'}" : "no match" end end Wirble.init Wirble.colorize unless Config::CONFIG['host_os'] == 'mswin32' 3. 该文件放置位置随意,建议在linux下放到home下。然后在linux和win32下设置环境变量IRBRC,指向该文件的路径(包括文件名本身)。同时win32下还需设置一个HOME环境变量,建议指向c:\Documents and Settings\your_account ---------------------------- 搞好了吧?SHOW TIME! 来体验一下多了哪些功能: (*代表只限linux平台提供) *1. 输出结果语法着色 2. 自动换行缩进 >>if i = 1 >> puts i 3. 按两次tab, 自动补全(这个其实win32下本来就有) >> [].e #tab tab [].each [].empty? [].equal? [].each_index [].entries [].extend [].each_with_index [].eql? *4. 直接使用ri 'something' 5. 直接使用pp 6. 命令行提示符改成>>和输出=>对齐 7. what? 猜api专用: >> 3.14.what? 3 #什么方法返回3? 3.14.to_int == 3 3.14.floor == 3 3.14.round == 3 3.14.to_i == 3 3.14.prec_i == 3 3.14.truncate == 3 => ["to_int", "floor", "round", "to_i", "prec_i", "truncate"] 8. 动态map: >> [1,2,3].map{|x| x.succ} #常规方式 => [2, 3, 4] >> [1,2,3].map_succ #快捷方式 => [2, 3, 4] 在Rails console里看查询结果很好用 9. irb命令行历史记录:下次重开irb依然保留 10. 对象研究快捷方式 >> poc Math #展示常量 => ["E", "PI"] >> po Math #展示非继承自Object的方法 => ["acos", "acosh", "asin", "asinh", "atan", "atan2", "atanh", "cos", "cosh", " erf", "erfc", "exp", "frexp", "hypot", "ldexp", "log", "log10", "sin", "sinh", " sqrt", "tan", "tanh"] 11. regexp研究快捷方式 >> /[a-z]+/.show "pi is 3.14" => "<<pi>> is 3.14" 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-10-20
Cool!!
小缺点:第1个缩近不能回退,其它都不错。 最后一个代码是不是贴少了? 能不能在script/console里用?我试了一下似乎是不行,要修改吗? |
|
返回顶楼 | |
发表时间:2006-10-20
缩进是irb的固有小瑕。结尾刚才手误了。
Linux下的rails console经研究发现还是只认IRBRC环境变量,不认home下的.irbrc或者_irbrc。所以和win32一样设一下就可以了。 另外win32下的irb不知把外部路径改成什么了,造成无法直接调用PATH里的ri,古怪 |
|
返回顶楼 | |
发表时间:2006-10-20
http://wiki.rubygarden.org/Ruby/page/show/Irb/TipsAndTricks
历史功能,用方向键 tab键,代码不全的提示 ——下划线,上次的运行结果 copy paste的功能需要,增强后才有 |
|
返回顶楼 | |
发表时间:2006-10-21
wiki上的tips大部分早以包括在Wirble里了
|
|
返回顶楼 | |
发表时间:2006-10-21
to cookoo:
C:\Documents and Settings\Administrator>irb load error: D:\Program Files\ruby\bin\_irbrc ArgumentError: couldn't find HOME environment -- expanding `~/.irb_history' D:/Program Files/ruby/lib/ruby/gems/1.8/gems/wirble-0.1.2/./wirble.rb:94 :in `expand_path' D:/Program Files/ruby/lib/ruby/gems/1.8/gems/wirble-0.1.2/./wirble.rb:94 :in `load_history' D:/Program Files/ruby/lib/ruby/gems/1.8/gems/wirble-0.1.2/./wirble.rb:11 2:in `initialize' D:/Program Files/ruby/lib/ruby/gems/1.8/gems/wirble-0.1.2/./wirble.rb:50 5:in `new' D:/Program Files/ruby/lib/ruby/gems/1.8/gems/wirble-0.1.2/./wirble.rb:50 5:in `init' D:\Program Files\ruby\bin\_irbrc:26 D:/Program Files/ruby/lib/ruby/1.8/irb/init.rb:207:in `load' D:/Program Files/ruby/lib/ruby/1.8/irb/init.rb:207:in `run_config' D:/Program Files/ruby/lib/ruby/1.8/irb/init.rb:20:in `setup' ------------------------------------ 是否需要指定一个'~/.irb_history',这个如何指定? |
|
返回顶楼 | |
发表时间:2006-10-21
你设一下HOME环境变量,一般win32下就是C:\Documents and Settings\your_account
|
|
返回顶楼 | |
发表时间:2006-10-21
Thank you!
随便问一下,JRuby 有没有好的IDE或是插件? |
|
返回顶楼 | |
发表时间:2006-10-22
我不用jruby所以不清楚
|
|
返回顶楼 | |
发表时间:2006-10-24
I found a bug in map_by_methods
Please comment map_by_methods like require 'rubygems' #require 'map_by_method' require 'what_methods' require 'wirble' require 'irb/completion' ..... The bug detail is described in my blog. http://lightyror.blogspot.com/2006/10/mapbymethod-irb-bug.html |
|
返回顶楼 | |