Como você limpa a tela do console do IRB?
Como você limpa a tela do console do IRB?
Respostas:
No Mac OS X ou Linux, você pode usar Ctrl+ Lpara limpar a tela do IRB .
cmd+k
limpará tudo dentro de um terminal, se você usar o tmux para dividir a área da área visual, ctrl+L
fará um trabalho melhor.
Jogue isso dentro %userprofile%\.irbrc
e você é bom
def cls
system('cls')
end
system('clear')
também funcionará em um Mac. Deve-se notar que isso ficará => true
no topo do console.
Em * nix boxes
`clear`
no Windows
system 'cls' # works
`cls` # does not work
no OSX
system 'clear' # works
`clear` # does not work
system('clear')
ou Ctrl
+L
system 'clear'
funcionou para mim, mas eu consegui: command not found => false
clear
seu arquivo pryrc para isso. Obrigado por compartilhar
Command+ Kno macOS funciona muito bem.
No Ubuntu 11.10, o sistema clear
limpará principalmente a janela irb. Você obtém um => True
valor de retorno impresso.
Uma grande bagunça de texto feio
ruby-1.9.2-p290 :007 > system 'clear'
o que você ganha:
=> true
ruby-1.9.2-p290 :007 >
Acabei de descobrir isso hoje: No Pry (uma alternativa ao IRB), uma linha de entrada que começa com a .
será encaminhada para o shell de comando. O que significa que no mac e Linux, podemos usar:
. clear
Atualização: Infelizmente, parece não funcionar no Windows.
Fonte: Pryrepl.org
. cls
deve funcionar no Windows.
Para limpar a tela, basta:
puts "\e[H\e[2J"
PS Isso foi testado no Linux.
`clear`
e é equivalente a puts %x(/usr/bin/clear)
.
system 'clear'
Deve funcionar para os trilhos 4.0 também
No Linux Mint 17 também é possível usar Ctrl+ Shift+L
ou
Ctrl+ L para limpar a tela do IRB.
puts `clear`
Limpa a tela e retorna => nil
Tested no Mac OSX 10.6 Terminal e no iTerm2.
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')
Adicione o seguinte método a ~/.irbrc
:
def clear
conf.return_format = ""
system('clear')
end
Cntrl-L
ou Cntrl-K
trabalho no console normal, mas estou usando o tmux e esses bagunçam a tela dentro da janela do tmux.
O conf.return_format = "" retira o valor de retorno nulo.
Os usuários do Windows simplesmente tentam,
system 'cls'
OU
system('cls')
Parece com isso na janela do IRB,
irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')
Fiz o truque para mim no ruby 1.9.3. No entanto, os seguintes comandos não funcionaram e retornaram => nil
,
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
system 'cls'
Funciona para mim no Windows, com Ruby 2.2.0 e rails 4.0
Eu vim aqui procurando uma maneira de redefinir o tty com o irb, pois ele não estava imprimindo novas linhas ou mostrando o que eu digitei de alguma forma, apenas alguma saída.
1.9.3-p125 :151 > system 'reset'
finalmente fiz o truque para mim!
`reset`
.
reset
deve funcionar bem
Toneladas de boas respostas aqui, mas eu costumo remotamente em uma caixa Linux com Mintty do Windows. Parabéns ao exposto sobre o uso do .irbrc, mas veio com isso:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
Isso fornece as opções para o comportamento * nix 'clear' e o comportamento do 'cls' do Windows, que muitas vezes acho mais útil se eu realmente quiser reduzir o buffer do que apenas rolá-lo para fora da vista.
PS uma variante semelhante também funciona em .bashrc:
alias cls='echo -e "\ec\e[3J"'
Se alguém pudesse encontrar uma maneira de mapear isso com um toque de tecla, eu adoraria ouvir. Eu realmente gostaria de ter algo parecido com o cmd-k no osx que funcionasse em Mintty.
Para usuários do Windows:
Se você criar um nome de arquivo bat c.bat cujo conteúdo seja:
@echo off
cls
Então, no IRB, você pode dizer:
system('c')
para limpar o console. Eu apenas pensei em compartilhar porque achei muito legal. Essencialmente, qualquer coisa no caminho é 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]
Isso limpará completamente a tela do IRB, sem linhas vazias extras e itens “=> nil”. Testado em Linux / Windows.
Esse one-liner pode 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
Isso usa muitos truques.
Em primeiro lugar, o irb ligará echo?
para verificar se o resultado deve ser impresso. Salvei o método e redefini-o com um método que restaura a definição, mas retorna false, para que o irb não ecoe o resultado.
Em segundo lugar, imprimi alguns caracteres de controle ANSI. \e[2J
limpará a tela e \e[H
moverá o cursor para a posição superior esquerda da tela. \e[D
imprimirá um espaço e, em seguida, retrocederá o cursor, enquanto essa é uma solução alternativa para algo estranho no Windows.
Finalmente, isso não é prático. Apenas sorria ;)
O operador backtick captura a saída do comando e retorna
s = `cls`
puts s
funcionaria melhor, eu acho.
cls
=> "\ f"
"\f"
qual é o que você conseguiu e, em seguida, mostra puts s
isso ♀
, pergunto-me por quê?
Ctrl+L
também trabalha no gnome-terminal, mas algo mais programático ésystem 'clear'