Frage

Wie möchten Sie die IRB-Konsole Bildschirm löschen?

War es hilfreich?

Lösung

Ein Mac OS X oder Linux können Sie Strg + L die IRB löschen Bildschirm.

Andere Tipps

Werfen Sie diese innerhalb %userprofile%\.irbrc und du bist gut

def cls
  system('cls')
end

IRB klaren Bildschirm auf Windows .

Auf * nix-Boxen

`clear`

auf Windows

system 'cls' # works
`cls` # does not work

auf OSX

system 'clear' # works
`clear` # does not work

Auf Ubuntu 11.10 System clear wird meist die irb Fenster löschen. Sie erhalten eine Rückkehr => True Wert gedruckt.

Ein großes Durcheinander von hässlichem Text

ruby-1.9.2-p290 :007 > system 'clear'

, was ya bekommen:

 => true 
ruby-1.9.2-p290 :007 > 

Befehl + K in macOS funktioniert super.

Genau dies heute entdeckt: In Pry (IRB Alternative), eine Eingabezeile, die mit einem . beginnt, wird an dem Kommando-Shell weitergeleitet werden. Welche in Mac und Linux bedeutet, können wir verwenden:

. clear

Update:. Leider ist es nicht scheint nicht unter Windows zu arbeiten

Quelle: Pryrepl.org

Um den Bildschirm zu löschen einfach tun:

puts "\e[H\e[2J"

P. S. Dies wurde auf Linux getestet.

system 'clear'

Sollte für Schienen arbeiten 4.0 und

puts `clear`

Löscht den Bildschirm und kehrt dann => nil Getestet auf Mac OSX 10.6-Terminal und iTerm2.

Unter Linux Mint 17 auch können Sie Strg + Umschalttaste + L

oder

Strg + L den IRB-Bildschirm zu löschen.

In Fenstern, mit Rails 4,

system('cls')

für mich gearbeitet

Fügen Sie die folgende Methode ~/.irbrc:

def clear
  conf.return_format = ""
  system('clear')
end

Cntrl-L oder Cntrl-K Arbeit in regelmäßiger Konsole, aber ich bin mit tmux und jenes Chaos auf den Bildschirm im Innern des tmux Fensters.

Die conf.return_format = "" nimmt die Null vor dem Rückgabewert.

Windows-Benutzer einfach versuchen,

system 'cls'

oder

system('cls')

Sieht aus wie dies im IRB-Fenster

irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')

hat den Trick für mich in Ruby 1.9.3. Allerdings sind die folgenden Befehle nicht funktioniert hat und zurück => nil,

system('clear')
system 'clear'
system `cls`       #using the backquotes below ESC Key in windows

Ich habe dies für ausführbare Dateien verwendet:

def clear
    system("cls") || system("clear") || puts("\e[H\e[2J")
end

clear

Methode: def clear_screen if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i system('cls') else system('clear') end end

oder in IRB können Sie verwenden system('clear')

system 'cls' 

Funktioniert bei mir in Windows, Ruby 2.2.0 und Rails 4.0

Tonnen guter Antworten hier, aber ich oft remote in eine Linux-Box mit Mintty von Fenstern. Ein großes Lob an die oben über die Verwendung von .irbrc, aber kam mit dieser:

def cls
  puts "\ec\e[3J"
end

def clear
  puts "\e[H\e[2Js"
end

Das gibt Ihnen die Optionen sowohl für das * nichts ‚klar‘ Verhalten und das Verhalten von Windows cls ', die wir finden oft nützlich, wenn ich nicht nur es aus Sicht nuke will die Puffer wirklich scrollen.

P. S. eine ähnliche Variante funktioniert auch in Bashrc:

alias cls='echo -e "\ec\e[3J"'

Wenn jemand einen Weg finden könnte, um tatsächlich, dass auf Knopfdruck Karte, würde ich gerne hören. Ich würde wirklich gerne so etwas wie müssen cmd-k auf osx, die in Mintty funktionieren würde.

Ich kam hier nach einer Möglichkeit, die tty mit irb zurückgesetzt werden, da sie nicht den Druck newlines wurde oder zeigen, was ich irgendwie eingegeben haben, nur einige Ausgabe.

1.9.3-p125 :151 >   system 'reset'

hat schließlich den Trick für mich!

Für Windows-Nutzer:

Wenn Sie erstellen eine Fledermaus Dateinamen c.bat, deren Inhalt:

@echo off
cls

Dann in IRB, können Sie sagen:

system('c')

, um die Konsole zu löschen. Ich dachte, ich würde teilen, weil ich dachte, das war ziemlich cool. Im Grunde alles, was auf dem Weg zugänglich ist.

->(a,b,c){x=a.method(b);a.send(c,b){send c,b,&x;false};print"\e[2J\e[H \e[D"}[irb_context,:echo?,:define_singleton_method]

Dies wird ganz klar Ihr IRB-Bildschirm, ohne zusätzliche Leerzeilen und „=> nil“ stuff. Getestet auf Linux / Windows-.

Dieser Einzeiler könnte erweitert werden, wie:

lambda {
  original_echo = irb_context.method(:echo?)
  irb_context.send(:define_singleton_method, :echo?) {
    send :define_singleton_method, :echo?, &original_echo
    false
  }
  print "\e[2J\e[H \e[D"
}.call

Dieses verwendet viele Tricks.

Als erstes wird irb echo? rufen zu überprüfen, ob das Ergebnis gedruckt werden soll. Ich rettete das Verfahren neu definierte dann mit einem Verfahren, das die defination stellt aber den Wert false zurück, so wird irb nicht das Ergebnis Echo.

Zweitens habe ich gedruckt einige ANSI Steuer Zeichen. \e[2J reinigt den Bildschirm und \e[H wird der Cursor in die obere linke Position des Bildschirms bewegen. \e[D einen Raum drucken und dann den Cursor bewegen zurück, während diese eine Abhilfe für etwas ist seltsam unter Windows.

Schließlich ist diese Art von nicht praktisch. Just smile;)

Der Backtick-Operator erfasst die Ausgabe des Befehls und gibt es

s = `cls`
puts s

würde besser funktionieren, glaube ich.

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