2008-09-22 8 views

Respuesta

241

En Mac OS X o Linux puede utilizar Ctrl +L para borrar la pantalla IRB.

+25

En Mac OS X, cmd + K también funcionará. – fanaugen

+7

'Ctrl + L' también funciona en gnome-terminal, pero algo más programático es' system 'clear'' – vol7ron

+5

Cuanto más trivial es la pregunta y la respuesta, más votos positivos reciben;) –

57

Throw esto dentro %userprofile%\.irbrc y ya está bueno

def cls 
    system('cls') 
end 

De IRB clear screen on windows.

+12

Debo aclarar que esto se aplica únicamente a Windows. –

+4

También puede hacer el sistema ('clear') en Linux y funciona bien –

+8

'system ('clear')' también funcionará en una Mac. Cabe señalar que esto dejará '=> verdadero' en la parte superior de la consola. – anthropomorphic

36

En cajas * nix

`clear` 

en Windows

system 'cls' # works 
`cls` # does not work 

en OSX

system 'clear' # works 
`clear` # does not work 
+1

esto no funciona en mac – jazzyfresh

+3

sí esto no funciona. Tengo que hacer 'system ('clear')' o 'Ctrl' +' L' –

+0

'system 'clear'' trabajado para mí, pero tengo': comando no encontrado => false' – echo

-3

El operador de comillas invertidas captura la salida del comando y lo devuelve

s = `cls` 
puts s 

funcionaría mejor, supongo.

+1

Esto falla: obtienes esto irb (main): 004: 0> 'cls' =>" \ f " –

+1

Hm, sí lo hace. Me pregunto porque. – JesperE

+0

@OrionEdwards @JesperE la primera línea me mostró '" \ f "' que es lo que obtuve y luego 'pone s' saca esto' '' I' Me pregunto por qué? – Lucky

16

En Ubuntu 11.10, el sistema clear borrará en su mayoría la ventana de irb. Obtiene un valor de retorno => True impreso.

un gran lío de texto fea

ruby-1.9.2-p290 :007 > system 'clear' 

lo que ya obtener:

=> true 
ruby-1.9.2-p290 :007 > 
+0

¡buena respuesta! funciona para mí para la consola ruby ​​ – lesyk

+1

esto también funciona para Mac OS X – jazzyfresh

8

Con el fin de limpiar la pantalla acaba de hacer:

puts "\e[H\e[2J" 

P. S. Esto fue probado en Linux.

+2

+1 porque eso está funcionando. Pero es algo así como no práctico. – gotqn

+0

Esto es solo el resultado de '\' borrar \ '', y es equivalente a 'puts% x (/ usr/bin/clear)'. –

+2

@CodeGnome puede explicar cómo funcionó esto? –

6
puts `clear` 

borra la pantalla y luego vuelve => nil Probado en Mac OS X 10.6 terminal y iTerm2.

0

para usuarios de Windows:

Si crea un nombre de archivo del palo c.bat cuyo contenido es:

@echo off 
cls 

Luego, en el IRB, se puede decir:

system('c') 

a limpia la consola. Pensé que lo compartiría porque pensé que era genial. Esencialmente cualquier cosa en el camino es accesible.

0

Vine aquí buscando una forma de restablecer el tty con irb, ya que no estaba imprimiendo líneas nuevas o mostrando lo que escribí de alguna manera, solo algunos resultados.

1.9.3-p125 :151 > system 'reset' 

¡finalmente lo hice por mí!

+0

simplifíquelo usando las marcas de retroceso: '\' restablecer \ ''. –

+0

@the Tin Man - los palos de atrás no siempre funcionan como piensas, pero '' reset'' debería funcionar bien – vol7ron

+0

Los palos de retroceso funcionan siempre como yo esperaba, pero luego, los he usado en varios idiomas durante años y años. –

0
->(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.

Esta sola línea 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 

Este utiliza un montón de trucos.

En primer lugar, irb llamará al echo? para verificar si el resultado debe imprimirse. Guardé el método, luego lo redefiní con un método que restaura la definació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 moverá hacia atrás el cursor mientras esto es una solución para algo extraño en Windows.

Por último, esto no es práctico en absoluto. Sólo sonríe;)

3

En las ventanas, utilizando los carriles 4,

system('cls') 

trabajó para mí

2

Añadir el siguiente método para ~/.irbrc:

def clear 
    conf.return_format = "" 
    system('clear') 
end 

o Cntrl-K trabajo en la consola regulares 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.

6

Acabo de descubrirlo hoy: en Pry (una alternativa de IRB), una línea de entrada que comienza con . se reenviará al shell de comandos. Lo que significa que en mac & Linux, podemos utilizar:

. clear 

Actualización: Por desgracia, no parece funcionar en Windows.

Fuente: Pryrepl.org usuarios

+0

Acabo de probar esto usando raw rb bajo Ruby 2.0.0p481 en Windows y no funciona. –

+0

Sí. Parece que no funciona en Windows. Pero seguramente funciona en mac y Linux. – RubyDev

+0

Me gusta esta respuesta de la mejor manera. No tiene que modificar nada y es solo un bombardeo fuera. Simple de recordar también. Por cierto, '.cls' debería funcionar en Windows. –

3

de Windows simplemente tratan,

system 'cls' 

O

system('cls') 

Parece que este en la ventana IRB,

irb(main):333:0> system 'cls' 
irb(main):007:0> system('cls') 

¿El truco para mí en ruby ​​1.9.3. Sin embargo, los siguientes comandos no funcionaba y devueltos => nil,

system('clear') 
system 'clear' 
system `cls`  #using the backquotes below ESC Key in windows 
2

He utilizado este para archivos ejecutables:

def clear 
    system("cls") || system("clear") || puts("\e[H\e[2J") 
end 

clear 
5

En Linux Mint 17 también se puede utilizar Ctrl +Shift +L

o

Ctrl + L para borrar la pantalla IRB.

+0

Trabajó para Mac OS X.11.1 en la aplicación Terminal – Patrick

+0

@ thatway_3 - buena respuesta: ¿cómo imprimió las instrucciones del teclado en Stackoverflow? – BKSpurgeon

0
system 'cls' 

funciona para mí de Windows, con Ruby 2.2.0 y los carriles 4,0

+0

¿Usted? mean Rails 4? – Undo

+0

yes ruby ​​2.2.0 and rails 4.0 – saadibabar

5
system 'clear' 

debe trabajar para rieles 4.0, así

1

Método: def clear_screen if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i system('cls') else system('clear') end end

O en el IRB puede usar system('clear')

0

Toneladas de g Aquí hay respuestas, pero a menudo me remito a una caja de linux con Mintty desde Windows. Felicitaciones a la 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 da las opciones tanto para el comportamiento * nix 'claro' y el comportamiento '' cls las ventanas, que a menudo encuentro más útil si realmente quiero nukear el búfer en lugar de desplazarlo fuera de la vista.

P.S. una variante similar también trabaja en .bashrc:

alias cls='echo -e "\ec\e[3J"' 

Si alguien pudiera encontrar una manera de asignar realidad que a un golpe de teclado, me encantaría escucharlo. Realmente me gustaría tener algo parecido a cmd-k en osx que funcione en Mintty.

Cuestiones relacionadas