Pergunta

Como você limpar a tela do console IRB?

Foi útil?

Solução

Em Mac OS X ou Linux você pode usar Ctrl + L para limpar o IRB ecrã.

Outras dicas

Jogar este %userprofile%\.irbrc dentro e você é bom

def cls
  system('cls')
end

Na tela clara IRB em janelas .

Em caixas * nix

`clear`

no Windows

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

no OSX

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

No Ubuntu 11.10 clear sistema irá principalmente limpar a janela de IRB. Você recebe um valor de retorno => True impresso.

A grande bagunça de texto feio

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

O que você aprendeu:

 => true 
ruby-1.9.2-p290 :007 > 

Comando + K em MacOS funciona muito bem.

Só descobri isso hoje: Em Pry (uma alternativa IRB), uma linha de entrada que começa com um . será encaminhada para o shell de comando. O que significa na Mac e Linux, podemos usar:

. clear

Update:. Infelizmente, ele não parece funcionar no Windows

Fonte: Pryrepl.org

Para limpar a tela apenas fazer:

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

P.S. Este foi testado em Linux.

system 'clear'

deve funcionar para rails 4.0, bem

puts `clear`

Limpa a tela e retorna => nil Testado em Mac OSX 10.6 Terminal e iTerm2.

No Linux Mint 17 também pode utilizar Ctrl + Mudança + L

ou

Ctrl + L para limpar a tela do IRB.

Nas janelas, usando Rails 4,

system('cls')

funcionou para mim

Adicione o seguinte método para ~/.irbrc:

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

Cntrl-L ou Cntrl-K trabalho na consola regular, mas eu estou usando tmux e aqueles mexer a tela para cima dentro da janela do tmux.

O conf.return_format = "" leva o nulo fora do valor de retorno.

Os usuários do Windows simplesmente tentar,

system 'cls'

ou

system('cls')

Looks como este na janela do IRB,

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

Será que o truque para mim em Ruby 1.9.3. No entanto, os seguintes comandos não funcionou e => nil voltou,

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

Eu usei isso para arquivos executáveis:

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

Ou no IRB você pode usar system('clear')

system 'cls' 

funciona para mim no Windows, com o Ruby 2.2.0 e trilhos 4.0

Toneladas de boas respostas aqui, mas eu muitas vezes remoto em uma caixa de Linux com Mintty das janelas. Elogios para a acima sobre o uso .irbrc, mas veio com essa:

def cls
  puts "\ec\e[3J"
end

def clear
  puts "\e[H\e[2Js"
end

Isto dá-lhe as opções, tanto para o * nix comportamento 'clara' e comportamento 'cls' do Windows, que muitas vezes eu achar mais útil se eu realmente quero detonar o buffer ao invés de apenas rolar para fora de vista.

P.S. uma variante semelhante também trabalha em .bashrc:

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

Se alguém pudesse encontrar uma maneira de realmente mapear que você pressionar uma tecla, eu adoraria ouvi-lo. Eu realmente gostaria de ter algo parecido com cmd-k no OSX que iria trabalhar em Mintty.

Eu vim aqui à procura de uma maneira de redefinir o tty com o IRB, uma vez que não estava imprimindo novas linhas ou mostrando o que eu digitei de alguma forma, somente alguns saída.

1.9.3-p125 :151 >   system 'reset'

finalmente fez o truque para mim!

Para usuários do Windows:

Se você criar um nome C.BAT bat cujos conteúdos são:

@echo off
cls

Então, em IRB, você pode dizer:

system('c')

para limpar o console. Eu apenas pensei que eu iria compartilhar porque eu pensei que era muito legal. Essencialmente nada no caminho está acessível.

->(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]

Isto irá limpar completamente sua tela IRB, sem linhas vazias extras e “=> nil” coisas. Testado em Linux / Windows.

Este one-liner poderia ser expandido 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

Isto usa muitos truques.

Em primeiro lugar, o IRB vai chamar echo? para verificar se o resultado deve ser impresso. Guardei o método, então redefinido com um método que restaura o defination, mas retorna false de modo IRB não vai ecoar o resultado.

Em segundo lugar, eu imprimi alguns caracteres de controle ANSI. \e[2J vai limpar o ecrã e \e[H irá mover o cursor para a posição superior esquerdo do ecrã. \e[D irá imprimir um espaço e, em seguida, mover para trás o cursor enquanto esta é uma solução para algo estranho no Windows.

Finalmente, este é tipo de não é prático em tudo. Apenas sorria;)

O operador backtick captura a saída do comando e devolve-lo

s = `cls`
puts s

iria funcionar melhor, eu acho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top