Pregunta

¿Cómo se borra la pantalla de la consola IRB?

¿Fue útil?

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

De Pantalla clara del IRB en Windows.

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top