Como faço para que a pesquisa reversa do bash funcione no Terminal.app sem exibir uma saída distorcida?

StackOverflow https://stackoverflow.com/questions/35563

  •  09-06-2019
  •  | 
  •  

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.

Foi útil?

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.

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