para pantalla limpiar consola comando ruby irb

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.



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