Come si cancella la schermata della console IRB?
Come si cancella la schermata della console IRB?
Risposte:
Su Mac OS X o Linux puoi usare Ctrl+ Lper cancellare lo schermo IRB .
cmd+k
cancellerai tutto in un tocco, se usi tmux per dividere l'area dell'area visiva, ctrl+L
farà un lavoro migliore.
Buttalo dentro %userprofile%\.irbrc
e stai bene
def cls
system('cls')
end
Dallo schermo IRB chiaro su Windows .
system('clear')
funzionerà anche su un Mac. Va notato che questo lascerà => true
nella parte superiore della console.
Su * nix box
`clear`
Su Windows
system 'cls' # works
`cls` # does not work
su OSX
system 'clear' # works
`clear` # does not work
system('clear')
o Ctrl
+L
system 'clear'
ha funzionato per me ma ho ottenuto: command not found => false
clear
tuo file pryrc. Grazie per aver condiviso
Command+ Kin macOS funziona alla grande.
Su Ubuntu 11.10 il sistema clear
cancella principalmente la finestra IRB. Ottieni un ritorno=> True
valore di stampato.
Un gran casino di brutti testi
ruby-1.9.2-p290 :007 > system 'clear'
cosa ottieni:
=> true
ruby-1.9.2-p290 :007 >
L'ho scoperto oggi: in Pry (un'alternativa IRB), una riga di input che inizia con un .
verrà inoltrata alla shell dei comandi. Ciò significa che in Mac e Linux, possiamo usare:
. clear
Aggiornamento: purtroppo non sembra funzionare su Windows.
Fonte: Pryrepl.org
. cls
dovrebbe funzionare su Windows.
Per cancellare lo schermo basta fare:
puts "\e[H\e[2J"
PS Questo è stato testato su Linux.
`clear`
ed è equivalente a puts %x(/usr/bin/clear)
.
system 'clear'
Dovrebbe funzionare anche per Rails 4.0
Su Linux Mint 17 puoi anche usare Ctrl+ Shift+L
o
Ctrl+ L per cancellare la schermata IRB.
puts `clear`
Cancella lo schermo e quindi restituisce => nil
Testato su Mac OSX 10.6 Terminal e iTerm2.
Metodo:
def clear_screen
if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i
system('cls')
else
system('clear')
end
end
O in IRB puoi usare system('clear')
Aggiungi il seguente metodo a ~/.irbrc
:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
o Cntrl-K
lavoro su una normale console ma sto usando tmux e quelli rovinano lo schermo all'interno della finestra di tmux.
Il conf.return_format = "" prende il via nullo il valore di ritorno.
Gli utenti Windows semplicemente provano,
system 'cls'
O
system('cls')
Sembra così nella finestra IRB,
irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')
Ha fatto il trucco per me in ruby 1.9.3. Tuttavia, i seguenti comandi non hanno funzionato e restituito => nil
,
system('clear')
system 'clear'
system `cls` #using the backquotes below ESC Key in windows
L'ho usato per file eseguibili:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
clear
Sono venuto qui alla ricerca di un modo per ripristinare il tty con irb, dal momento che non stava stampando nuove righe o mostrando ciò che ho digitato in qualche modo, solo un po 'di output.
1.9.3-p125 :151 > system 'reset'
finalmente ha fatto il trucco per me!
`reset`
.
reset
dovrebbero funzionare bene
Tonnellate di buone risposte qui, ma spesso vado in remoto in una scatola Linux con Mintty da Windows. Complimenti a quanto sopra sull'uso di .irbrc, ma è venuto fuori con questo:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Questo ti dà le opzioni sia per il comportamento 'netto' di * nix che per il comportamento 'cls' di Windows, che trovo spesso più utile se voglio davvero nuotare il buffer piuttosto che farlo scorrere fuori dalla vista.
PS una variante simile funziona anche in .bashrc:
alias cls='echo -e "\ec\e[3J"'
Se qualcuno riuscisse a trovare un modo per associarlo effettivamente a una sequenza di tasti, mi piacerebbe ascoltarlo. Mi piacerebbe davvero avere qualcosa di simile a cmd-k su osx che avrebbe funzionato in Mintty.
Per gli utenti di Windows:
Se si crea un nome di file bat c.bat i cui contenuti sono:
@echo off
cls
Quindi, in IRB, puoi dire:
system('c')
per cancellare la console. Ho solo pensato di condividere perché pensavo fosse abbastanza bello. Essenzialmente qualsiasi cosa nel percorso è accessibile.
->(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]
Questo cancella completamente lo schermo IRB, senza righe vuote extra e roba "=> zero". Testato su Linux / Windows.
Questo one-liner potrebbe essere espanso come:
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
Questo utilizza molti trucchi.
In primo luogo, irb chiamerà echo?
per verificare se il risultato deve essere stampato. Ho salvato il metodo, quindi ridefinito con un metodo che ripristina la definizione ma restituisce false in modo che irb non rispecchi il risultato.
In secondo luogo, ho stampato alcuni caratteri di controllo ANSI. \e[2J
pulirà lo schermo e \e[H
sposta il cursore nella posizione in alto a sinistra dello schermo. \e[D
stamperà uno spazio e quindi sposta indietro il cursore mentre questa è una soluzione alternativa per qualcosa di strano su Windows.
Finalmente questo non è affatto pratico. Sorridi e basta ;)
L'operatore backtick acquisisce l'output del comando e lo restituisce
s = `cls`
puts s
funzionerebbe meglio, immagino.
cls
=> "\ f"
"\f"
qual è quello che hai ottenuto e quindi l' puts s
output ♀
mi chiedo perché?
Ctrl+L
funziona anche in gnome-terminal, ma qualcosa di più programmatico èsystem 'clear'