Frage

In der Python-Welt gibt es eine Reihe von alternativen Python Interpreter, die zusätzliche Funktionen kühlen hinzuzufügen. Ein besonders nützliches Beispiel ist bpython, die dynamische Syntax-Hervorhebung fügt hinzu, zieht automatisch die Dokumentation und zeigt Live-Informationen zur automatischen Vervollständigung. In der Ruby-Welt habe ich noch keine Projekte aufzudecken, die zur Basis IRB-Interpreter für noch eine Teilmenge dieser Funktionen. Bin ich einfach nicht hart genug suchen, oder ist das nur etwas die Ruby-Community fehlt?

War es hilfreich?

Lösung

Was für ein Zufall. Rubyflow erst gestern angekündigt, die irbtools Juwel, die eine Meta-Edelstein ist viel kühler irb Verbesserung Edelsteine ??enthalten. Es enthält:

  • Färbt und Ausgabe als Kommentar von wirb und fancy_irb
  • Nizza IRB prompt und IRB Autoinden
  • Schließt stdlib des FileUtils: ls, cd, pwd, ln_s, rm, mkdir, touch, cat
  • Viele Debug-Helfer: ap, q, o, c, y, Object#m, Object#d
    • ap - awesome_print
    • q - wie p, aber auf einer Linie
    • Object#m - geordnete Methodenliste (nimmt ganzzahlige Parameter: Der Grad der Verschachtelung)
    • Object#d - setzt das Objekt, kehrt selbst (mit tap)
  • „magische“ Informationen Konstanten: Info, OS, RubyVersion, RubyEngine
    • OS.windows?
    • RubyEngine.jruby?
    • RubyVersion.is.at_least? 1.9
  • Zwischenablage-Funktionen: copy und paste
    • auch: copy_input und copy_output für Sitzungsverlauf
  • Anruf vim (oder ein anderer unterstützter Editor) zu bearbeiten eine Datei, in der Nähe, und es in der aktuelle irb Sitzung geladen werden, angetrieben durch interactive_editor
  • Eine weitere Möglichkeit der Live-Laden in irb: Skizzen
  • Markieren Sie eine Zeichenfolge mit olorize('string') oder eine Datei mit ray('path'), angetrieben durch CodeRay
  • Displays Activedatenbankeinträge als Tabellen mit hirb
  • Restart irb mit reset! oder der Ruby-ändern-Version mit der use Methode und rvm!
  • Schließt das aktuelle Verzeichnis im Lastpfad (wurde in 1.9.2 aus Sicherheitsgründen entfernt, aber es ist ziemlich ärgerlich in IRB)
  • Shorter erfordern wie folgt aus: rq:mathn
  • Und rerquiring mit rrq
  • Versuchen Sie, die enthalten Object#ri Helfer, angetrieben durch ori!
  • Zugriff auf eine Menge von mehr Befehle mit boson - Aufruf Befehle, um loszulegen

Es gibt schönes Screenshots auf der irbtools Seite. Eine schöne daran ist, dass jeder der Dienstprogramme auf eigenen Beinen stehen kann, für den Fall, Sie wollen einfach nur ein oder zwei Merkmale herauspicken.

2013-Update

Da ich dies schrieb, Pry hat sich zu einem beliebten IRB-Ersatz. Es macht nicht so viel wie irbtools aus der Box, aber es erweiterbar mit Edelsteinen Plugin, das coole Features hinzufügen. Sie können Quellcode sehen, wie es ein Unix-Verzeichnis war:

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>

Sie können auch Ruby-Dokumentation, die Ausgabe von Shell-Befehlen, durchsuchen und wenn Sie einen Rails-Benutzer sind, können Sie das pry-rails Juwel verwenden hebel in Ihrer Rails-Konsole zu erhalten. Es gibt auch eine Möglichkeit, es in Sinatra einzuhaken und es mit Heroku zu verwenden.

Es gibt reichlich Dokumentation - es gibt eine Reihe von Screencasts mit einer Railscast. Es ist auf jeden Fall lohnt ein Blick in.

Andere Tipps

Verwenden Pry: http://pry.github.com

Lassen Sie uns Sie:

  • Sitzungen zur Laufzeit starten
  • Ansicht Methode Quellcode
  • Ansicht Verfahren Dokumentation (nicht RI verwendet, so dass Sie müssen dont vorge erzeugen it)
  • Pop in und aus verschiedenen Kontexten
  • Syntaxhervorhebung
  • Kern Integration
  • Ansicht und Wiedergabe der Geschichte
  • open-Editoren zu bearbeiten Methode edit-method obj.my_method Syntax

Eine Tonne mehr große und besondere Ausstattungsmerkmale

Ich habe noch nie von einer (populär) Alternative zum IRB gehört, aber es gibt sicherlich einige nützlichen Edelsteine, die die IRB-Erfahrung viel schöner machen:

  • awesome_print ziemlich druckt Ruby Vertiefung Objekte und Färbung, sehr nützlich, wenn man versucht bei verschachtelten Hashes zu suchen oder andere komplizierte Datenstrukturen.
  • looksee ist auch ziemlich genial, es ein Verfahren lp bietet (Lookup-Pfad), das zeigt, wo ein Ruby-Objekt erhält seine Methoden aus (Klasse, Superklasse usw.).
  • Sketches Connects Editor und IRB, so ist es besonders nützlich, wenn Sie der Typ die gerne interaktive Entwicklung. Emacs mit inf-ruby ist auch gut für diese.
  • Wirble ist eine ganze Reihe von IRB-Erweiterungen, wie Tab-Vervollständigung und Syntax-Hervorhebung. Es gibt auch Utility-Gürtel , aber ich persönlich nicht so verwenden, so kann nicht kommentieren ihre Funktionen.

Bearbeiten

Ich habe vergessen, Hirb , das ist sehr nützlich für zB die Ergebnisse einer Active Abfrage in einer Rails-Konsole zeigt.

JRuby Schiffe mit jirb_swing, der Code-Vervollständigung bietet.

Es gibt nicht viel in der Gegend von Alternativen zu irb, aber es gibt ein paar Edelsteine, die nützlichen Funktionen irb hinzuzufügen.

Vor allem wirble , die, unter anderem gibt Ihnen farbige Ausgabe (nicht eingegeben obwohl) und eine Geschichte, die über die aktuelle Sitzung geht.

Schauen Sie sich RIPL , eine modulare irb Alternative, die sein erweiterbar ausgelegt ist. Sie können auch ein paar Antworten bekommen von Gibt es so etwas wie bpython für Ruby? .

rib ist ein modular aufgebautes und leicht Rubin interaktiv Shell.

Er, wie Pry, verwendet Ruby-Parser so konsistentes Verhalten Ruby somit weniger Fehler hat (zB https://stackoverflow.com/ a / 39271791/474597 )

Es ist modular aufgebaut, so ein leicht mit mehr Funktionalitäten erweitern kann.

Es ist auch noch aktiv ab 2016 beibehalten.

Ich habe eine reine Ruby-Konsole, inspirierte aus Google Chrome JavaScript-Konsole.

https://github.com/sancarn/RubyConsole

Es ist immer noch meist ein WIP-Projekt als ich Fehler mit dem aktuellen Algorithmus zu finden, zu halten, aber ich baue es 1.9.3+ kompatibel zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top