Domanda
Come si cancella la schermata della console IRB?
Soluzione
Su Mac OS X o Linux puoi usare Ctrl + L per cancellare IRB schermo
Altri suggerimenti
Inseriscilo in % userprofile% \. irbrc
e sei bravo
def cls
system('cls')
end
Su * nix box
`clear`
su Windows
system 'cls' # works
`cls` # does not work
su OSX
system 'clear' # works
`clear` # does not work
Sul sistema Ubuntu 11.10 clear
cancella principalmente la finestra irb. Ottieni un ritorno = > Vero
valore stampato.
Un gran casino di brutti testi
ruby-1.9.2-p290 :007 > system 'clear'
cosa ottieni:
=> true
ruby-1.9.2-p290 :007 >
Comando + K in macOS funziona alla grande.
L'ho scoperto oggi: in Pry (un'alternativa IRB), una riga di input che inizia con un .
verrà inoltrata alla shell dei comandi. Il che significa in mac & amp; Linux, possiamo usare:
. clear
Aggiornamento: purtroppo non sembra funzionare su Windows.
Fonte: Pryrepl.org
Per cancellare lo schermo basta fare:
puts "\e[H\e[2J"
P.S. Questo è stato testato su Linux.
system 'clear'
Dovrebbe funzionare anche per Rails 4.0
puts `clear`
Cancella lo schermo e quindi restituisce = > nil
testato su Mac OSX 10.6 Terminal e iTerm2.
Su Linux Mint 17 puoi anche usare Ctrl + Maiusc + L
o
Ctrl + L per cancellare la schermata IRB.
In Windows, usando Rails 4,
system('cls')
ha funzionato per me
Aggiungi il seguente metodo a ~ / .irbrc
:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
o Cntrl-K
funzionano in una console normale ma sto usando tmux e quelli rovinano lo schermo all'interno della finestra di tmux.
Il conf.return_format = " " toglie lo zero dal valore di ritorno.
Gli utenti Windows semplicemente provano,
system 'cls'
o
system('cls')
Assomiglia a questo 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 hanno restituito = > nil
,
system('clear')
system 'clear'
system `cls` #using the backquotes below ESC Key in windows
L'ho usato per i file eseguibili:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
clear
Metodo:
def clear_screen
se RUBY_PLATFORM = ~ /win32|win64|\.NET|windows|cygwin|mingw32/i
sistema ( 'cls')
altro
Sistema ( 'chiaro')
fine
end
O in IRB è possibile utilizzare system('clear')
system 'cls'
Funziona per me in Windows, con Ruby 2.2.0 e rails 4.0
Tonnellate di buone risposte qui, ma spesso vado in remoto in una scatola Linux con Mintty da Windows. Complimenti per quanto riguarda l'utilizzo di .irbrc, ma ne è venuto fuori:
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.
P.S. 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.
Sono venuto qui alla ricerca di un modo per ripristinare la 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!
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. In sostanza 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 cancellerà completamente lo schermo IRB, senza linee vuote extra e & # 8220; = > nil & # 8221; cose. 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
Usa 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
sposterà il cursore nella posizione in alto a sinistra dello schermo. \ e [D
stamperà uno spazio e quindi sposta il cursore indietro mentre questa è una soluzione alternativa per qualcosa di strano su Windows.
Finalmente questo non è affatto pratico. Basta sorridere;)
L'operatore backtick acquisisce l'output del comando e lo restituisce
s = `cls`
puts s
funzionerebbe meglio, immagino.