¿Cómo se borra la pantalla de la consola IRB?
¿Cómo se borra la pantalla de la consola IRB?
Respuestas:
En Mac OS X o Linux puede usar Ctrl+ Lpara borrar la pantalla IRB .
cmd+k
borrará todo dentro de un toque de terminal, si usa tmux para dividir el área del área visual, ctrl+L
funcionará mejor.
Tira esto adentro %userprofile%\.irbrc
y eres bueno
def cls
system('cls')
end
system('clear')
También funcionará en una Mac. Cabe señalar que esto dejará => true
en la parte superior de la consola.
En cajas * nix
`clear`
en Windows
system 'cls' # works
`cls` # does not work
en OSX
system 'clear' # works
`clear` # does not work
system('clear')
o Ctrl
+L
system 'clear'
funcionó para mí pero lo conseguí: command not found => false
clear
su archivo pryrc para esto. Gracias por compartir
Command+ Ken macOS funciona muy bien.
En Ubuntu 11.10, el sistema clear
borrará principalmente la ventana irb. Obtiene un => True
valor de retorno impreso.
Un gran lío de texto feo
ruby-1.9.2-p290 :007 > system 'clear'
que obtienes
=> true
ruby-1.9.2-p290 :007 >
Acabo de descubrir esto hoy: en Pry (una alternativa IRB), una línea de entrada que comienza con un .
se enviará al shell de comandos. Lo que significa que en mac y Linux, podemos usar:
. clear
Actualización: Desafortunadamente, no parece funcionar en Windows.
Fuente: Pryrepl.org
. cls
debería funcionar en Windows.
Para borrar la pantalla solo haz:
puts "\e[H\e[2J"
PD: Esto fue probado en Linux.
`clear`
, y es equivalente a puts %x(/usr/bin/clear)
.
system 'clear'
También debería funcionar para rails 4.0
En Linux Mint 17 también puedes usar Ctrl+ Shift+L
o
Ctrl+ L para borrar la pantalla IRB.
puts `clear`
Borra la pantalla y luego regresa => nil
Probado en Mac OSX 10.6 Terminal e iTerm2.
Método:
def clear_screen
if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i
system('cls')
else
system('clear')
end
end
O en IRB puedes usar system('clear')
Agregue el siguiente método a ~/.irbrc
:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
o Cntrl-K
trabajo en la consola normal, pero estoy usando tmux y esos desordenan la pantalla dentro de la ventana de tmux.
El conf.return_format = "" toma la nula fuera el valor de retorno.
Los usuarios de Windows simplemente intentan,
system 'cls'
O
system('cls')
Se ve así en la ventana IRB,
irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')
Hizo el truco para mí en ruby 1.9.3. Sin embargo, los siguientes comandos no funcionaron y regresaron => nil
,
system('clear')
system 'clear'
system `cls` #using the backquotes below ESC Key in windows
He usado esto para archivos ejecutables:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
clear
system 'cls'
Funciona para mí en Windows, con Ruby 2.2.0 y rails 4.0
Vine aquí buscando una manera de restablecer el tty con irb, ya que no estaba imprimiendo nuevas líneas o mostrando lo que escribí de alguna manera, solo algo de salida.
1.9.3-p125 :151 > system 'reset'
finalmente hizo el truco para mí!
`reset`
.
reset
deberían funcionar bien
Toneladas de buenas respuestas aquí, pero a menudo me acerco a una caja de Linux con Mintty desde Windows. Felicitaciones a lo anterior sobre el uso de .irbrc, pero se le ocurrió esto:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Esto le brinda las opciones tanto para el comportamiento 'claro' * nix como para el comportamiento 'cls' de Windows, que a menudo encuentro más útil si realmente quiero destruir el búfer en lugar de simplemente desplazarlo fuera de la vista.
PS, una variante similar también funciona en .bashrc:
alias cls='echo -e "\ec\e[3J"'
Si alguien pudiera encontrar una manera de mapear eso con solo presionar una tecla, me encantaría escucharlo. Realmente me gustaría tener algo similar a cmd-k en osx que funcionaría en Mintty.
Para usuarios de Windows:
Si crea un nombre de archivo bat c.bat cuyos contenidos son:
@echo off
cls
Luego, en IRB, puedes decir:
system('c')
para limpiar la consola. Solo pensé en compartir porque pensé que era genial. Esencialmente cualquier cosa en el camino es accesible.
->(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]
Esto borrará completamente la pantalla de IRB, sin líneas vacías adicionales y "=> nulo". Probado en Linux / Windows.
Esta línea podría expandirse como:
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
Esto usa muchos trucos.
En primer lugar, irb llamará echo?
para verificar si se debe imprimir el resultado. Guardé el método, luego lo redefiní con un método que restaura la definición pero devuelve falso para que irb no repita el resultado.
En segundo lugar, imprimí algunos caracteres de control ANSI. \e[2J
limpiará la pantalla y \e[H
moverá el cursor a la posición superior izquierda de la pantalla. \e[D
imprimirá un espacio y luego moverá el cursor hacia atrás mientras esto es una solución para algo extraño en Windows.
Finalmente, esto no es práctico en absoluto. Sólo sonríe ;)
El operador de retroceso captura el resultado del comando y lo devuelve
s = `cls`
puts s
funcionaría mejor, supongo.
cls
=> "\ f"
"\f"
cuál es lo que tienes y luego muestra puts s
esto ♀
. ¿Me pregunto por qué?
Ctrl+L
también funciona en gnome-terminal, pero algo más programático essystem 'clear'