Pregunta
¿Cómo se borra la pantalla de la consola IRB?
Solución
En Mac OS X o linux puedes usar Control + l para limpiar el IRB pantalla.
Otros consejos
Tira esto adentro %userprofile%\.irbrc
y eres bueno
def cls
system('cls')
end
En cajas *nix
`clear`
en Windows
system 'cls' # works
`cls` # does not work
en OSX
system 'clear' # works
`clear` # does not work
En el sistema Ubuntu 11.10 clear
limpiará principalmente la ventana irb.Obtienes una devolución => True
valor impreso.
Un gran lío de texto feo.
ruby-1.9.2-p290 :007 > system 'clear'
lo que obtienes:
=> true
ruby-1.9.2-p290 :007 >
Dominio + k en Mac OS Funciona genial.
Acabo de descubrir esto hoy:En Pry (una alternativa IRB), una línea de entrada que comienza con un .
será reenviado al shell de comandos.Lo que significa que en Mac y Linux podemos usar:
. clear
Actualizar:Desafortunadamente, no parece funcionar en Windows.
Fuente: Pryrepl.org
Para borrar la pantalla simplemente haga:
puts "\e[H\e[2J"
PDEsto fue probado en Linux.
system 'clear'
Debería funcionar también para Rails 4.0.
puts `clear`
Borra la pantalla y luego regresa. => nil
Probado en Mac OSX 10.6 Terminal e iTerm2.
En Linux Mint 17 también puedes usar Control + Cambio + l
o
Control + lpara borrar la pantalla IRB.
En Windows, usando Rails 4,
system('cls')
trabajó para mi
Agregue el siguiente método a ~/.irbrc
:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
o Cntrl-K
Funciona en una consola normal, pero estoy usando tmux y eso arruina la pantalla dentro de la ventana de tmux.
El conf.return_format = "" elimina el valor nulo del 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')
Me funcionó 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
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')
system 'cls'
Me funciona en Windows, con Ruby 2.2.0 y Rails 4.0
Toneladas de buenas respuestas aquí, pero a menudo entro de forma remota a una caja de Linux con Mintty desde Windows.Felicitaciones a lo anterior sobre el uso de .irbrc, pero se me ocurrió esto:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Esto le brinda opciones tanto para el comportamiento 'clear' de *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.
PDuna variante similar también funciona en .bashrc:
alias cls='echo -e "\ec\e[3J"'
Si alguien pudiera encontrar una manera de asignar eso a una pulsación de tecla, me encantaría escucharla.Realmente me gustaría tener algo parecido a cmd-k en osx que funcionara en Mintty.
Vine aquí buscando una manera de restablecer el tty con irb, ya que no imprimía nuevas líneas ni mostraba lo que escribí de alguna manera, solo algunos resultados.
1.9.3-p125 :151 > system 'reset'
¡Finalmente funcionó para mí!
Para usuarios de Windows:
Si crea un archivo bat con el nombre c.bat cuyo contenido sea:
@echo off
cls
Luego, en IRB, puedes decir:
system('c')
para borrar la consola.Simplemente pensé en compartirlo porque pensé que era genial.Básicamente, todo lo que se encuentre 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 del IRB, sin líneas vacías adicionales ni elementos “=> nulos”.Probado en Linux/Windows.
Esta frase breve podría ampliarse 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 utiliza muchos trucos.
En primer lugar, irb llamará echo?
para comprobar si el resultado debe imprimirse.Guardé el método y 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 que esta es una solución para algo extraño en Windows.
Finalmente, esto no es nada práctico.Sólo sonríe ;)
El operador de acento grave captura el resultado del comando y lo devuelve
s = `cls`
puts s
Funcionaría mejor, supongo.