34

Pythonの世界では、クールな追加機能を追加する代替のPythonインタープリターがいくつかあります。特に便利な例の1つは、動的な構文の強調表示を追加し、ドキュメントを自動的に取得し、ライブのオートコンプリート情報を表示するbpythonです。Rubyの世界では、これらの機能のサブセットでさえ、基本的なIRBインタープリターに追加されるプロジェクトをまだ発見していません。私はただ十分に見つめていませんか、それともこれはRubyコミュニティに欠けているものですか?

4

9 に答える 9

35

Pryを使用する:https ://github.com/pry/pry

あなたにしましょう:

  • 実行時にセッションを開始する
  • メソッドのソースコードを表示する
  • メソッドのドキュメントを表示する(RIを使用していないため、事前に生成する必要はありません)
  • さまざまなコンテキストに出入りする
  • 構文の強調表示
  • 要旨の統合
  • 履歴の表示と再生
  • edit-method obj.my_methodエディターを開いて、構文を使用してメソッドを編集します

1トン以上の優れたオリジナルの機能

于 2011-04-28T01:50:32.430 に答える
29

なんて偶然。Rubyflowは昨日、irbtools gemを発表しました。これは、多くのクールなirb拡張gemを含むメタgemです。を含む:

  • とによるコメントとして色付けされて出力されwirbますfancy_irb
  • 素敵なIRBプロンプトとIRBの自動インデント
  • stdlibのFileUtilsが含まれlscdいます:、、、、、、、、、pwdln_srmmkdirtouchcat
  • 多くapのデバッグヘルパー:、、、、、、、、q_ocyObject#mObject#d
    • ap– awesome_print
    • q–のようpですが、1行に
    • Object#m–順序付けされたメソッドリスト(整数パラメーターを取る:ネストのレベル)
    • Object#d–オブジェクトを配置し、selfを返します(を使用してtap
  • 「魔法の」情報定数:Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.at_least? 1.9
  • クリップボードの機能:copyおよびpaste
    • また利用可能:copy_inputおよびcopy_outputセッション履歴
  • (またはサポートされている別のエディター)を呼び出しvimてファイルを編集し、ファイルを閉じると、ファイルが現在のirbセッションに読み込まれます。interactive_editor
  • irbにライブロードする別の方法:スケッチ
  • コードレイを使用して、文字列olorize('string')またはファイルを強調表示しますray('path')
  • ActiveRecordデータベースエントリを次のテーブルとして表示しますhirb
  • で再起動irbするか、メソッドをreset!使用してRubyのバージョンを変更し、uservm!
  • ロードパスに現在のディレクトリを含めます(セキュリティ上の理由から1.9.2で削除されましたが、IRBではかなり煩わしいです)
  • このように必要な短い:rq:mathn
  • そして、rrq
  • Object#ri付属のヘルパーをお試しくださいori
  • より多くのコマンドへのアクセスboson–コマンドを呼び出して開始する

irbtoolsページに素敵なスクリーンショットがあります。それの良い点の1つは、1つまたは2つの機能を選択したい場合に備えて、各ユーティリティが独立していることです。

2013アップデート

私がこれを書いたので、Pryは人気のあるIRBの代替品になりました。箱から出してすぐに使えるほどではありませんがirbtools、クールな機能を追加するプラグインgemで拡張できます。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のドキュメントを閲覧したり、シェルコマンドを発行したりすることもできます。また、Railsユーザーの場合は、pry-railsgemを使用してRailsコンソールでこじ開けることができます。Sinatraに接続して、Herokuで使用する方法もあります。

十分なドキュメントがあります。Railscastを含む多数のスクリーンキャストがあります。それは間違いなく調べる価値があります。

于 2010-10-07T20:10:16.147 に答える
3

IRBの(人気のある)代替案について聞いたことがありませんが、IRBのエクスペリエンスを大幅に向上させる便利な宝石がいくつかあります。

  • awesome_printは、インデントと色付けを使用してRubyオブジェクトをきれいに印刷します。これは、ネストされたハッシュやその他の複雑なデータ構造を調べようとするときに非常に便利です。
  • lookseeも非常に優れておりlp、Rubyオブジェクトがメソッドを取得する場所(クラス、スーパークラスなど)を示すメソッド(ルックアップパス)を提供します。
  • SketchesはエディターとIRBを接続するため、インタラクティブな開発が好きなタイプの場合に特に便利です。Emacswithinf-rubyもこれに適しています。
  • Wirbleは、タブ補完や構文の強調表示など、IRBの拡張機能のセット全体です。ユーティリティベルトもありますが、個人的には使っていないので、その機能についてコメントすることはできません。

編集

Hirbを忘れてしまいました。これは、RailsコンソールでActiveRecordクエリの結果を表示する場合などに非常に便利です。

于 2010-10-07T19:11:23.080 に答える
2

http://github.com/alloy/dietrbがあります。

于 2010-10-07T18:59:27.460 に答える
2

jirb_swingJRubyには、コード補完を提供するが付属しています。

于 2010-10-07T19:41:48.863 に答える
1

irbに代わるものの分野はあまりありませんが、irbに便利な機能を追加するいくつかの宝石があります。

最も顕著なのは、特に、色付きの出力(ただし入力ではない)と現在のセッションを超える履歴を提供するwirbleです。

于 2010-10-07T18:40:14.600 に答える
1

拡張可能に設計されたモジュラーirbの代替であるriplをチェックしてください。また、Ruby用のbpythonのようなものはありますか?

于 2010-10-07T19:39:03.123 に答える
0

ribは、モジュール式で軽量のRubyインタラクティブシェルです。

Pryと同様に、Rubyのパーサーを使用するため、Rubyとの動作が一貫しているため、バグが少なくなります(https://stackoverflow.com/a/39271791/474597など) 。

モジュール式なので、より多くの機能で簡単に拡張できます。

また、2016年現在も積極的に維持されています。

于 2016-12-29T06:19:05.213 に答える
0

私は、GoogleChromeのJavaScriptコンソールから着想を得た純粋なRubyコンソールを作成しました。

https://github.com/sancarn/RubyConsole

現在のアルゴリズムでバグを見つけ続けているので、それはまだほとんどWIPプロジェクトですが、1.9.3+互換になるように構築しています。

于 2018-06-22T08:54:53.770 に答える