2010-07-03 21 views
34

Me gustaría saber cómo hacerlo en Ruby lo que puedo hacer con system("clear") en C. escribí un programa como¿Cómo puedo borrar el terminal en Ruby?

puts "amit" 
system("clear") 

Quiero que la consola se borrará después de ejecutar este commnad, pero es no funciona.

+1

Qué operativo ¿Está ejecutando Ruby on? – Zabba

+0

SCiTE no es un compilador, es solo un editor de texto. –

Respuesta

2

permite utilizar las siguientes crear un archivo de rubí dicen check.rb como follwing

puts "amit" 
#system "clear" 

y ejecutarlo desde la consola [Salil @ localhost escritorio] $ check.rb

O/P

[[email protected] Desktop]$ ruby check.rb 
amit 
[[email protected] Desktop]$ 

ahora modificar check.rb y ejecutarlo desde la consola

puts "amit" 
system "clear" 

O/P

[[email protected] Desktop]$ 
6

funciona Una ligera variación:

puts "Here's a very long string" 
sleep 1 
system ("cls") 

Marcos.

+4

Obviamente solo funciona en Windows. –

+0

sistema "claro" es lo que desea para aquellos en un terminal * nix –

1

Si está en una Mac, puede borrar la ventana de su terminal con "Comando + K".

13

Pruebe cualquiera de estos dos en su archivo de rubí:

puts `clear` 

o

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

Utilice el segundo aquí. La idea de bifurcar un proceso solo para borrar la pantalla me daña la cabeza. Consulte aquí para obtener más información: http://www.termsys.demon.co.uk/vtansi.htm Además, consulte ncurses para obtener un control más sólido. Pero la posibilidad de que encuentres un terminal no ansi en estos días es prácticamente nula. –

13

Editar:. (Volver a leer su pregunta me di cuenta de que esto no es lo que está después pensé que eras refiriéndose al IRB. Dejaré esto aquí y no lo eliminaré porque creo que puede ser información muy útil)


En última instancia, depende del sistema en el que se encuentre.

ctrl + l (< - que es una L minúscula) despejará el terminal ( cmd + K en un mac creo)

esto también funciona en el regulares terminal, o el interprador de python, o mysql, etc.

hay una buena cantidad de otros atajos con los que te gustaría familiarizarte.He encontrado this después de una rápida búsqueda en Google:

CTRL-l - Clears the screen and places the command prompt at the top of the page. 
CTRL-r - Starts a search against the command history. Start by typing in what you want to search by then press CTRL-r to see the matches. 
CTRL-c - Kills the current running foreground program. 
CTRL-z - Stop/sleep the current running foreground program. 
CTRL-s - Stops the output to the screen. 
CTRL-q - Allows output to the screen. 
CTRL-a - Moves the cursor the start of the line 
CTRL-e - Moves the cursor to the end of the line 
CTRL-f - Moves the cursor 1 character forward 
CTRL-b - Moves the cursor 1 character backward 

no mencionados en esa lista es que

Alt-F moves the curosor one word forward 
Alt- B moves the cursor one word back 
47

Si usted quiere algo que es vagamente portátil que puede probar:

system "clear" or system "cls" 

cuales probará ambos clear y cls

0

Un enfoque portátil, compromized aunque a menudo visualmente satisfactorio que yo uso es lo que yo llamo "locos Putz pone":

counter=0 
until counter == 50 
puts " " 
counter += 1 
end 
+3

Esto depende de cuán grande esté configurado el búfer de pantalla de alguien y está lejos de ser eficiente, pero de todos modos también puede hacer 50.times {puts ""} para abreviar – Riptyde4

+3

'print" \ n "* 50' –

13

Aquí es una manera multiplataforma para hacerlo:

Gem.win_platform? ? (system "cls") : (system "clear") 
3

Si están usando MAC OS luego usar:

system('clear') 
1

para usuarios de windows:

Sólo tienes que escribir esta función a continuación en la ventana IRB y que son buenos para ir:

definir esta función:

def cls 
    system('cls') 
end 

Después de definir llamar a esta función cuando sea necesario.

3

Esto debería cubrir las ventanas y los terminales OSX/Linux.

def method_name 
    puts "amit" 
    if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i 
     system('cls') 
    else 
     system('clear') 
    end 
end 
method_name 
0

Obras en UNIX:

sistema
system("clear") 
Cuestiones relacionadas