Wie löscht man den IRB-Konsolenbildschirm?
Wie löscht man den IRB-Konsolenbildschirm?
Antworten:
Unter Mac OS X oder Linux können Sie mit Ctrl+ Lden IRB- Bildschirm löschen .
cmd+k
wird alles innerhalb eines Terminal-Tippen gelöscht. Wenn Sie tmux verwenden, um den Bereich des visuellen Bereichs zu teilen, ctrl+L
wird dies eine bessere Arbeit leisten.
Wirf das hinein %userprofile%\.irbrc
und du bist gut
def cls
system('cls')
end
system('clear')
funktioniert auch auf einem Mac. Es ist zu beachten, dass dies => true
oben auf der Konsole verbleibt.
On * nix-Boxen
`clear`
unter Windows
system 'cls' # works
`cls` # does not work
unter OSX
system 'clear' # works
`clear` # does not work
system('clear')
oder Ctrl
+L
system 'clear'
arbeitete für mich, aber ich bekam: command not found => false
clear
Ihre Pryrc-Datei hinzufügen . Vielen Dank für das Teilen
Command+ Kin macOS funktioniert super.
Unter Ubuntu 11.10 löscht das System clear
meistens das irb-Fenster. Sie erhalten einen Rückgabewert => True
gedruckt.
Ein großes Durcheinander von hässlichem Text
ruby-1.9.2-p290 :007 > system 'clear'
was du bekommst:
=> true
ruby-1.9.2-p290 :007 >
Habe dies heute entdeckt: In Pry (eine IRB-Alternative) wird eine Eingabezeile, die mit a beginnt .
, an die Befehlsshell weitergeleitet. Was bedeutet, dass wir in Mac & Linux Folgendes verwenden können:
. clear
Update: Leider scheint es unter Windows nicht zu funktionieren.
Quelle: Pryrepl.org
. cls
sollte unter Windows funktionieren.
Um den Bildschirm zu löschen, gehen Sie einfach wie folgt vor:
puts "\e[H\e[2J"
PS Dies wurde unter Linux getestet.
`clear`
und entspricht puts %x(/usr/bin/clear)
.
system 'clear'
Sollte auch für Rails 4.0 funktionieren
Unter Linux Mint 17 auch können Sie verwenden Ctrl+ Shift+L
oder
Ctrl+ L , um den IRB-Bildschirm zu löschen.
puts `clear`
Löscht den Bildschirm und gibt dann => nil
Tested on Mac OSX 10.6 Terminal und iTerm2 zurück.
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')
Fügen Sie die folgende Methode hinzu ~/.irbrc
:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
oder Cntrl-K
arbeite in einer normalen Konsole, aber ich benutze tmux und diese bringen den Bildschirm im tmux-Fenster durcheinander.
Das conf.return_format = "" entfernt die Null vom Rückgabewert.
Windows-Benutzer versuchen einfach,
system 'cls'
ODER
system('cls')
Sieht im IRB-Fenster so aus,
irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')
Habe den Trick für mich in Ruby 1.9.3 gemacht. Die folgenden Befehle funktionierten jedoch nicht und wurden zurückgegeben => 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
system 'cls'
Funktioniert für mich unter Windows mit Ruby 2.2.0 und Rails 4.0
Ich bin hierher gekommen, um nach einer Möglichkeit zu suchen, das tty mit irb zurückzusetzen, da es keine Zeilenumbrüche druckte oder zeigte, was ich irgendwie eingegeben habe, sondern nur eine Ausgabe.
1.9.3-p125 :151 > system 'reset'
endlich den Trick für mich gemacht!
`reset`
.
reset
sollten aber gut funktionieren
Tonnenweise gute Antworten hier, aber ich habe oft eine Minx-Box mit Mintty aus Windows entfernt. Ein großes Lob an die oben genannte Verwendung von .irbrc, aber mit folgendem Ergebnis:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Dies gibt Ihnen die Optionen sowohl für das Verhalten * nix 'clear' als auch für das Verhalten von Windows 'cls', was ich oft nützlicher finde, wenn ich den Puffer wirklich nuklearisieren möchte, anstatt ihn nur aus der Ansicht zu scrollen.
PS eine ähnliche Variante funktioniert auch in .bashrc:
alias cls='echo -e "\ec\e[3J"'
Wenn jemand einen Weg finden könnte, dies tatsächlich einem Tastenanschlag zuzuordnen, würde ich es gerne hören. Ich hätte wirklich gerne etwas Ähnliches wie cmd-k auf osx, das in Mintty funktionieren würde.
Für Windows-Benutzer:
Wenn Sie einen Bat-Dateinamen c.bat erstellen, dessen Inhalt ist:
@echo off
cls
Dann können Sie im IRB sagen:
system('c')
um die Konsole zu löschen. Ich dachte nur, ich würde teilen, weil ich das ziemlich cool fand. Grundsätzlich ist alles im Pfad zugänglich.
->(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]
Dadurch wird Ihr IRB-Bildschirm vollständig gelöscht, ohne zusätzliche Leerzeilen und "=> Null". Getestet unter Linux / Windows.
Dieser Einzeiler könnte erweitert werden als:
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
Dies verwendet viele Tricks.
Zunächst ruft irb auf, um echo?
zu prüfen, ob das Ergebnis gedruckt werden soll. Ich habe die Methode gespeichert und dann mit einer Methode neu definiert, die die Definition wiederherstellt, aber false zurückgibt, damit irb das Ergebnis nicht wiedergibt.
Zweitens habe ich einige ANSI-Steuerzeichen gedruckt. \e[2J
Bereinigt den Bildschirm und \e[H
bewegt den Cursor an die obere linke Position des Bildschirms. \e[D
druckt ein Leerzeichen und bewegt dann den Cursor zurück, während dies eine Problemumgehung für etwas Seltsames unter Windows ist.
Schließlich ist dies überhaupt nicht praktikabel. Einfach lächeln ;)
Der Backtick-Operator erfasst die Ausgabe des Befehls und gibt sie zurück
s = `cls`
puts s
würde besser funktionieren, denke ich.
cls
=> "\ f"
"\f"
, was Sie haben und puts s
gibt dies dann aus. ♀
Ich frage mich, warum?
Ctrl+L
funktioniert auch im gnome-terminal, aber etwas programmatischeres istsystem 'clear'