Ao percorrer o histórico na linha da janela do terminal cygwin fica ilegível

0

Estou usando o Cygwin 64-bits, atualizado (hoje) no Windows 7; e na minha janela de terminal eu trabalho na máquina local ou ssh em alguma outra máquina (Linux). Agora, às vezes, quando rola de volta no histórico de comandos do bash e passa alguns comandos mais longos (especialmente no caso de comandos sendo executados no final da linha com o prompt e na próxima linha) - continuar a rolar imprime outros comandos na linha de prompt, mas mantém os caracteres de (um / alguns) comandos mais antigos se o novo comando for mais curto, por exemplo:

[me@mine /some/where]$ the quick brown fox jumped over the lazy dog. the
quick brown fox jumped over the lazy dog.

[me@mine /some/where]$ another command altogether over the lazy do

[me@mine /some/where]$ yet another command jumped over the lazy do

agora, nem todos os personagens são mantidos. Além disso, isso nem sempre acontece - não sei exatamente o que desencadeia isso.

No entanto, se eu apenas ssh no host remoto usando, digamos, putty, não passando pelo cygwin - eu não entendo esse comportamento, então parece que é um problema com o Cygwin ou seu bash.

  • O que está acontecendo exatamente?
  • Qual é a causa?
  • Posso corrigi-lo / evitá-lo / contorná-lo (além de executar clear , quero dizer)?
por einpoklum 12.02.2017 / 23:53

2 respostas

1

O problema comum com o comprimento de linha no bash é o prompt ( PS1 ) que normalmente é configurado para usar cores. Se as seqüências de escape não forem colocadas entre \[ e \] , então bash faz suposições incorretas sobre a posição do cursor. Geralmente isso é relatado quando edita um comando, mas rolando através do histórico não é realmente diferente.

Se não houver uma personalização local de PS1 , o próximo local a procurar é na descrição do terminal (valor de TERM ). Um Cygwin bastante recente usa mintty como uma janela de terminal. Isso é um descendente de putty ... Define TERM=xterm . Mas existem diferenças entre mintty behavior e xterm (apenas como putty difere). Por exemplo, tack , informa que bw (backward-wrap) está incorreto. O bash não parece usar isso diretamente (embora alguns scripts possam). Seu forward-wrap ( am ) também difere de xterm (visto em vttest ), e o bash pode ter alguma dependência do comportamento do xterm.

Se você usou xterm do Cygwin e comparou com o mintty do Cygwin, você pode obter uma comparação melhor.

    
por 19.02.2017 / 12:53
0

Possíveis problemas:

  • Alguma parte do pipeline TTY tem a ideia errada sobre a largura do seu terminal

  • Algo ficou confuso sobre o Unicode

  • Você está na tela alternativa e os caracteres não estão sendo sobrescritos corretamente (a memória que estou usando para essa ideia é vaga e talvez eu tenha os detalhes errados sobre isso)

por 22.08.2018 / 17:10