2010-10-07 125 views
31

在python世界中,有許多替代python解釋器可以添加很酷的附加功能。一個特別有用的例子是bpython,它添加了動態語法高亮顯示,自動提取文檔並顯示實時自動完成信息。在Ruby世界中,我還沒有發現任何添加到基本IRB解釋器甚至是這些功能子集的項目。我是不是很難看,或者這只是Ruby社區缺乏的東西?IRB有什麼替代方案?

回答

28

真是巧合。 Rubyflow剛剛在昨天宣佈了irbtools寶石,這是一個包含許多酷irb增強​​寶石的元寶石。它包含:

  • 彩色化,並通過wirbfancy_irb
  • 尼斯IRB提示和IRB的自動縮進
  • 包括STDLIB的文件實用程序註釋輸出:lscdpwdln_srmmkdirtouchcat
  • 許多調試助手:apqocyObject#mObject#d
    • ap - awesome_print
    • q - 像p,但在一行
    • Object#m - 有序的方法列表(取整數參數:嵌套的水平)
    • Object#d - 放對象,返回自(使用tap
  • 「魔法」信息常量:Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.at_least? 1.9
  • 剪貼板功能:copypaste
    • 還有:copy_inputcopy_output會話歷史
  • 呼叫vim(或其他支持編輯器)來編輯文件,關閉它,它被加載到您當前的IRB會議上,搭載interactive_editor
  • 活載的另一種方式進入IRB:素描
  • 亮點與olorize('string')字符串或ray('path')文件,搭載coderay
  • 顯示ActiveRecord的數據庫條目表與hirb
  • 重啓irbreset!或改變Ruby的版本與use方法和rvm!
  • 包括負載路徑中的當前目錄(在1.9.2出於安全原因被刪除,但在IRB煩)
  • 較短的要求是這樣的:rq:mathn
  • 並與rrq
  • rerquiring嘗試包括Object#ri幫手,搭載ori
  • 獲得了很多的命令與boson - 命令撥打電話上手

有在irbtools頁面上漂亮的屏幕截圖。關於它的一個好處是,每個公用程序都可以獨立運行,以防止您只想選擇一個或兩個功能。

2013更新

自從我寫了這個,Pry已成爲一種流行IRB更換。它不會像irbtools開箱即用,但它可以通過添加很酷功能的插件寶石進行擴展。您可以瀏覽源代碼,就像是一個UNIX目錄:

pry(main)> cd FileUtils 
pry(FileUtils):1> show-method rm 

From: /opt/ruby/lib/ruby/1.9.1/fileutils.rb @ line 556: 
Number of lines: 10 
Owner: FileUtils 

def rm(list, options = {}) 
    fu_check_options options, OPT_TABLE['rm'] 
    list = fu_list(list) 
    fu_output_message "rm#{options[:force] ? ' -f' : ''} #{list.join ' '}" if options[:verbose] 
    return if options[:noop] 

    list.each do |path| 
    remove_file path, options[:force] 
    end 
end 
pry(FileUtils):2> 

您還可以瀏覽Ruby文檔,問題shell命令,如果你是一個Rails的用戶,可以使用pry-rails寶石來獲得撬你Rails控制檯。還有一種方法可以將它與Sinatra掛鉤並與Heroku一起使用。

有足夠的文檔 - 有一堆屏幕錄像,包括Railscast。這絕對值得一看。

+3

這似乎過時了。下面提到的Pry已經獲得了足夠的動力,似乎是irb的首選替代品。 – 2011-10-17 14:40:46

+3

感謝您使用Pry的指針。看起來不錯!它與irbtools有着不同的關注點 - 它會進行更多的代碼自省。我不再羨慕Python的REPL。 :)但是,我不認爲irbtools已過時,因爲它已更新爲Rails 3並仍然適用於我。 – 2011-10-17 18:33:39

+2

更新的項目主頁:https://github.com/janlelis/irbtools – 2012-07-07 04:04:21

1

irb的替代品領域並不多,但有幾個寶石爲irb增加了有用的功能。

最值得注意的是wirble,除此之外,它還爲您提供了彩色輸出(儘管未輸入)以及超出當前會話的歷史記錄。

+0

wirble給你irb自動補全是不正確的。 Irb隨身攜帶。 wirble只需要它:要求'irb/completion' – cldwalker 2010-10-07 19:37:42

+0

@user:謝謝,修正它。 – sepp2k 2010-10-07 19:46:12

2
+0

還有很多工作要做。也就是說,包括我剛剛推出的0.6版本,DietRB具有以下功能:更清晰的實現,代碼和文件路徑完成,Wirble模板支持的着色以及自動縮進。 https://rubygems.org/gems/dietrb – alloy 2010-11-01 23:36:45

+0

哦,並注意它只針對MRI 1.9和MacRuby,因爲它使用了Ripper。 – alloy 2010-11-01 23:38:19

3

我從來沒有聽說過(流行)的替代IRB的,但當然有一些有用的寶石,使內部評級經驗要好很多:

  • awesome_print漂亮的打印紅寶石縮進和着色對象,當試圖查看嵌套散列或其他複雜的數據結構時非常有用。
  • looksee也非常棒,它提供了一個方法lp(查找路徑),它顯示了Ruby對象從哪裏(類,超類等)獲取它的方法。
  • Sketches連接你的編輯器和IRB,所以它特別有用,如果你是喜歡交互式開發的類型。 Emacs與inf-ruby也是很好的。
  • Wirble是一整套IRB增強功能,如標籤填充和語法高亮顯示。也有Utility Belt,但我不親自使用它,所以不能評論它的功能。

編輯

Hirb,這對於例如非常有用在Rails控制檯中顯示ActiveRecord查詢的結果。

2

JRuby附帶jirb_swing,它提供代碼完成。

33

使用撬:http://pry.github.com

讓我們你:在運行時

  • 啓動會話
  • 視圖法源代碼
  • 視圖方法的文檔(不那麼你不必預先生成使用RI它)
  • 彈出和彈出不同的上下文
  • 語法突出顯示
  • 要點整合
  • 視圖和重播歷史
  • 打開的編輯器使用edit-method obj.my_method語法

一噸偉大的和原有的特色

0

rib是一個模塊化的光紅寶石交互shell編輯方法。

它,像撬,使用Ruby的解析器所以具有紅寶石因而更少的錯誤(例如https://stackoverflow.com/a/39271791/474597)一致的行爲

它是模塊化的,因此可以很容易地將其與更多的功能延伸。

它也仍然積極維護,截至2016年。