ruby - pantalla - ¿Cómo se borra la Consola IRB?
comando para limpiar pantalla en linux (21)
¿Cómo borras la pantalla de la consola IRB?
Acabo de descubrir esto hoy: En Pry (una alternativa de IRB), una línea de entrada que comienza con a .
se reenviará 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
Agregue el siguiente método a ~/.irbrc
:
def clear
conf.return_format = ""
system(''clear'')
end
Cntrl-L
o Cntrl-K
funcionan en la consola normal, pero estoy usando tmux y aquellos desordenan la pantalla dentro de la ventana de tmux.
Conf.return_format = "" saca el nil del valor de retorno.
El operador backtick captura la salida del comando y lo devuelve
s = `cls`
puts s
funcionaría mejor, supongo.
En Mac OS X o Linux , puede usar Ctrl + L para borrar la pantalla IRB .
En Linux Mint 17 también puedes usar Ctrl + Shift + L
o
Ctrl + L para borrar la pantalla IRB.
En Ubuntu 11.10, el sistema clear
borrará en su mayoría la ventana de irb. Obtiene un retorno => True
Valor => True
impreso.
Un gran lío de texto feo
ruby-1.9.2-p290 :007 > system ''clear''
¿Qué obtienes?
=> true
ruby-1.9.2-p290 :007 >
En Windows, usando Rails 4,
system(''cls'')
trabajó para mi
En cajas * nix
`clear`
en Windows
system ''cls'' # works
`cls` # does not work
en OSX
system ''clear'' # works
`clear` # does not work
Hay toneladas de buenas respuestas aquí, pero a menudo me remito a una caja de linux con Mintty desde Windows. Felicitaciones a lo anterior por usar .irbrc, pero se le ocurrió esto:
def cls
puts "/ec/e[3J"
end
def clear
puts "/e[H/e[2Js"
end
Esto le da las opciones tanto para el comportamiento "nítido" de * nix como para el comportamiento "cls" de Windows, que a menudo me resulta más útil si realmente deseo nukear 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 forma de asignarlo a una pulsación de tecla, me encantaría escucharlo. Realmente me gustaría tener algo parecido a cmd-k en osx que funcione en Mintty.
Lo he usado para archivos ejecutables:
def clear
system("cls") || system("clear") || puts("/e[H/e[2J")
end
clear
Los usuarios de Windows simplemente intentan,
system ''cls''
O
system(''cls'')
Se ve así en la ventana de IRB,
irb(main):333:0> system ''cls''
irb(main):007:0> system(''cls'')
Hice el truco para mí en ruby 1.9.3. Sin embargo, los siguientes comandos no funcionaron y devolvió => nil
,
system(''clear'')
system ''clear''
system `cls` #using the backquotes below ESC Key in windows
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 puede usar el system(''clear'')
Para borrar la pantalla simplemente hazlo:
puts "/e[H/e[2J"
PS Esto fue probado en Linux.
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 Pensé que lo compartiría porque pensé que era genial. Esencialmente cualquier cosa en el camino es accesible.
Tira esto dentro %userprofile%/.irbrc
y estás bien
def cls
system(''cls'')
end
Desde la pantalla clara de IRB en Windows .
Vine aquí buscando una manera de restablecer el tty con irb, ya que no estaba imprimiendo líneas nuevas 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í!
Command + K en macOS funciona muy bien.
->(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 su pantalla IRB, sin líneas adicionales vacías y cosas "=> nil". Probado en Linux / Windows.
Este one-liner 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 el resultado debe ser impreso. Guardé el método, luego lo redefiní con un método que restaura la definición pero devuelve falso, por lo que irb no repite 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 retrocederá el cursor mientras esto es una solución para algo extraño en Windows.
Finalmente, esto no es práctico en absoluto. Sólo sonríe ;)
puts `clear`
Borra la pantalla y luego regresa => nil
Probado en Mac OSX 10.6 Terminal e iTerm2.
system ''clear''
Debería funcionar también para rails 4.0
system ''cls''
Funciona para mí en Windows, con Ruby 2.2.0 y rieles 4.0