Este é um bug no Terminal.app que foi percebido por outros, por exemplo, em Qualquer maneira de corrigir o manuseio incorreto de tela de linha? (Talvez apenas Terminal.app)
Eu posso reproduzir o efeito usando o bash + tmux, e capturar o texto enviado para a tela ver que o tmux está definindo as margens de rolagem para excluir a última linha na tela antes de atualizações que possam causar uma quebra de linha. Enquanto isso, bash está escrevendo uma longa linha escrevendo a parte que caberia na primeira linha, mais mais dois caracteres, e então um retorno de carro e a segunda linha, etc.
Os dois caracteres extras devem forçar a linha a envolver. Mas o Terminal.app parece estar confuso com a troca de margens de rolagem, movendo o cursor até a última linha da região de rolagem e, em seguida, escrevendo uma longa linha ali. Em vez de embrulhar, fica onde está e a segunda parte da linha longa é escrita em cima da primeira.
Embora seja um recurso para desativar o agrupamento de linhas, a maioria dos aplicativos supõe que ele esteja ativado. No rastreio (usando script
), nem o tmux nem o bash o usavam. A menos que um deles manipule o revestimento de linha, não há nada para ganhar lá. O tmux, por exemplo, apenas assume o recurso e nem verifica a descrição do terminal para o recurso am
(automargin). Ele verifica o flag xenl
(falha na nova linha), mas removê-lo da descrição do terminal só pioraria as coisas.
Então ... se esse bug impedir você de usar o Terminal.app, o iTerm2 é uma alternativa adequada.