Já faz algum tempo que tenho esse comportamento estranho. Sairei da guarda com ctrl+D
e quando obtiver um prompt bash, nada aparecerá no prompt quando eu digitar. Posso digitar comandos do shell e eles serão executados, mas nenhum texto aparece enquanto digito. A saída dos comandos digitados é exibida. Usando GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)
.
Pode ser alguma sobra de stdout / stderr - ou uma sessão / discussão undead pry.
O Guard 2.7.0 foi lançado - você ainda tem o problema? Em caso afirmativo, qual é a última linha que está tornando o prompt invisível?
Obrigado, vou atualizar e ver o que acontece esta semana.
Acabei de atualizar e ainda estou vendo esse problema. Não tenho certeza do que você quer dizer com sua segunda pergunta. O Guard fica ocioso após a execução das especificações e, quando pressiono ctrl+D
para sair, recebo meu prompt $
bash, mas nada aparece depois dele quando tento digitar um comando.
O Guard usa o LumberJack e acho que é o (s) thread (s) do LumberJack que não são limpos (então, quando o guarda sai, o LumberJack despeja as mensagens de saída restantes no "plano de fundo" depois que você obtém o prompt do shell, então ... o prompt do shell fica escondido.
Isso provavelmente será corrigido em breve.
Ah ok. Obrigado!
entretanto, você tentou digitar reset
?
(Eu encontrei esse problema porque quando estou executando a guarda com pry-byebug, posso ver o que digito na minha guarda repl, mas quando adiciono um binding.pry a um arquivo, não consigo ver o que estou digitando no que repl. Estranho
@ bf4 - pode ser um problema com o buffer. Você pode tentar colocar em seu Guardfile:
$stderr.sync = true
$stdout.sync = true
e fazendo o mesmo em algum lugar do seu aplicativo (por exemplo, antes de binding.pry
).
Isso é só para ver se isso muda alguma coisa (não faz sentido manter a saída sincronizada).
Também pode ser um problema com readline e Pry, então você pode querer desinstalar e instalar Pry (e readline) de acordo com o que é recomendado atualmente em seus documentos.
Ou você pode ter certeza de que não tem uma configuração personalizada em algum lugar.
Corrigi-lo removendo readline-rb gem e editando o .editrc por osx
docs imediatamente antes da sugestão de readline. Ruby 2.1.4 via rvm no osx,
guarda 2.7 e 2.9
Estou encerrando isso porque parece ser um problema de readline, não um problema do Guard.
Se houver algo que eu possa fazer no Guard para evitar isso (ou consertar), reabra.
Acho que pode ter sido um problema com guard-zeus
. Quando retirei aquela joia, o problema desapareceu.
@mockdeep - estranho. Mas obrigado por me avisar. Se algum dia eu reproduzir (eu uso Linux), resolvo isso.
Eu estava conseguindo consistentemente quando guard-zeus
estava conectado. Apenas inicialize guard
, talvez execute algumas especificações, pressione ctrl + D e pronto. Também estou usando Linux.
Sim, a atualização legal da saída do Zeus interfere no Pry.
Gambiarra:
guard 'zeus', cli: '> /dev/null' do
A outra solução alternativa é, obviamente, simplesmente executar o Zeus em um terminal separado.
Enviei um problema aqui: https://github.com/guard/guard-zeus/issues/18
Precisa de mudanças no Zeus para suportar isso.
Agradável. Vou manter isso em mente se tiver problemas semelhantes. Por enquanto, mudamos para spring
.
Se você estiver usando o spring no Linux, você pode querer assinar este problema: https://github.com/jonleighton/spring-watcher-listen/issues/1 (basicamente, quando eu chegar lá, o spring usará o inotify no Linux em vez de pesquisa).
Agradável! Seguido.
Portanto, vejo nos documentos https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X a correção .editrc
que mencionei isn ' t lá. Procurei na história e descobri que estava no Pry Docs
Como posso obter suporte readline (ctrl + r etc) para Pry no OSX?
Tecnicamente para o OSX, você não precisa do readline, e vamos nos concentrar no uso do libedit, que vem com o OSX.
Edite o arquivo
.editrc
em seu diretório inicial. Adicione esta linha:bind "^R" em-inc-search-prev
Agora você pode usar ctrl + r para fazer uma pesquisa reversa do histórico.
Ref: http://hints.macworld.com/article.php?story=20080313113705760
Como alternativa, instale o GNU Readline e faça com que o Ruby o use: https://github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-on-Mac-OS-X
Finalmente, Pry funciona com rb-readline, uma implementação Ruby pura de Readline que não deve sofrer com as dependências de plataforma e instalação do Readline padrão.
Ref: https://github.com/luislavena/rb-readline
Parece que esses médicos falam uns com os outros. Posso adicionar as informações do editrc ou link para os documentos do pry?
@ bf4 -
Posso adicionar as informações do editrc ou link para os documentos do pry?
Absolutamente! Seria muito apreciado!
Eu tenho esse problema tambem. Mesmo após uma nova reinicialização, estou usando spring + guard, quando coloco um ponto de interrupção binding.pry em meu código, não consigo ver nada do que digito. Tentei adicionar bind "^R" em-inc-search-prev
a ~/.editrc
e reiniciei meu terminal, mas não ajudou. Eu tentei reset
também, não ajudou.
@rahilsondhi export DISABLE_SPRING=1
e todos os seus problemas irão embora
Obrigado. Tentei colocar isso no meu terminal antes de iniciar a guarda - não
dados. Eu até removi a mola do meu Guardfile, sem dados.
Na terça, 7 de abril de 2015 às 11h21, Benjamin Fleischer <
notificaçõ[email protected]> escreveu:
@rahilsondhi https://github.com/rahilsondhi export DISABLE_SPRING = 1 e
todos os seus problemas irão embora-
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/guard/guard/issues/619#issuecomment -90688628.
Comentários muito úteis
entretanto, você tentou digitar
reset
?(Eu encontrei esse problema porque quando estou executando a guarda com pry-byebug, posso ver o que digito na minha guarda repl, mas quando adiciono um binding.pry a um arquivo, não consigo ver o que estou digitando no que repl. Estranho