Domanda

Come si cancella la schermata della console IRB?

È stato utile?

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

Da Schermo chiaro IRB su Windows .

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top