Como faço para que a pesquisa reversa do bash funcione no Terminal.app sem exibir uma saída distorcida?
Pergunta
Usando Terminal.app no OS X 10.5, muitas vezes você vê os comandos ficarem ilegíveis ao fazer uma pesquisa reversa com o Bash.Existe algum tipo de termcap ou talvez um comando bash shopt que possa corrigir isso?É muito chato.
Passos para reproduzir:Abra Terminal.app, pesquise reversamente para um comando mais longo.Pressione <ctrl>-E depois de encontrar o comando.O cursor vai para o final da linha, mas a exibição não é atualizada.
Suponho que seja algum tipo de problema com a biblioteca readline no OS X.É mais um problema atualizar a posição do cursor após uma pesquisa do que qualquer outra coisa.Basicamente, ctrl-a e ctrl-e tendem a quebrar o resultado da pesquisa.
imagem de falha do terminal os x http://involution.com/images/osxterminal.png
Acima, a primeira parte do comando deveria ser exibida, e o cursor deveria estar no final da linha, mas não está.Você literalmente não consegue ver o que está editando quando isso acontece.
Solução
Consegui definir meu TERM como xterm em vez de xterm-color e isso resolve o problema.(exportar TERM=xterm).
Outras dicas
Você pode querer dar uma olhada nesta postagem.
bash-prompt-in-os-x-terminal-quebrado
Eu tive o mesmo problema e tinha a ver com a variável PS1.Avise-me se isso ajudar.
Se o prompt tiver cores, então este é um bug reconhecido.
Ver relatório de erro mensagem#00019.
Encontrei esse bug e, embora não saiba como resolvê-lo, você pode contorná-lo pressionando <down><up>
Não tenho certeza se esse é o problema aqui, mas uma causa muito comum de tela bagunçada no bash (com qualquer emulador de terminal, não apenas Terminal.app) é a janela sendo redimensionada.
O Bash lerá o tamanho da janela quando for inicializado e então assumirá que não mudou.Quando a janela for redimensionada, um sinal será enviado para qualquer aplicativo que esteja lendo no console.Se isso não for o bash (porque você está executando um editor de texto no momento, talvez), então o bash não saberá disso.
A solução neste caso é redimensionar a janela novamente para que o bash receba o sinal e perceba o novo tamanho.
Não consigo reproduzir isso, acertando também Ctrl+E, Ctrl+A ou as teclas de seta atualizam a linha de comando corretamente.Você está executando 10.5.4?Talvez seja um bug nas versões anteriores?
Na pior das hipóteses, você poderia iniciar o servidor X (em algum lugar nos utilitários) e iniciar um xterm real.