Por exemplo, se eu estiver tail -f
inserindo um arquivo ou read
uma entrada do usuário, <Enter>
será produzido ^M
no terminal em vez de terminar read
ou adicionar uma nova linha ao stdout. ^J
funciona bem.
Estou ssh
entrando no sistema ubuntu, se isso importa. Isso acontece comigo no zsh e no bash. Uma solução com a qual eu joguei é remapear o ^M
para ^J
no zsh, mas isso parece que não resolveria o problema raiz. Alguém sabe o que pode estar causando isso?
Edit: Para responder a algumas perguntas, estou ssh
entrando no Ubuntu a partir do OSX. Estou usando o iTerm e o zsh. Também esqueci de mencionar que estou usando o tmux na máquina Ubuntu.
Edit 2: perdeu uma pergunta. Quando digito Ctrl-V Enter
, recebo ^M
(no OSX e no Ubuntu).
Edit 3: No OSX e Ubuntu echo $TERM
produz screen-256color
.
fonte
Respostas:
Caso alguém mais tenha esse problema, é mais provável que seja um problema com a configuração da linha de terminal stty do que um problema de TERM. Se isso acontecer com você novamente, tente executar
stty sane
e deixe-nos saber se isso corrige.fonte
Tente correr
stty -a
para ver as configurações do seu terminal. Minha suspeita é que suaicrnl
configuração não esteja definida e será mostrada como-icrnl
(o sinal de menos significa que está desativada) em vez de ter a configuração usual de estar ativada. Aqui está como meu terminal é normalmente configurado quando eu faço login:E eu não tenho nenhum problema com terminações de linha: return (^ M) ou enter (^ J) terminarão as linhas de entrada. Mas se eu
icrnl
desligar, os códigos ^ M aparecerão repentinamente toda vez que estou falando com um programa e pressione enter:O código
icrnl
significa "transformar retornos de carro em novas linhas" e oculta o programa em execução que você pode estar digitando ^ M quando o Unix realmente deseja ^ J. Os teclados antigos costumavam ter uma tecla Return e Enter separada (onde Return normalmente o avançava por meio de um formulário e a Enter o enviava), mas hoje geralmente temos apenas uma tecla de final de linha e, portanto, essa configuração do terminal ajuda a combinar os dois significados.Adicione o
stty icrnl
comando ao seu.profile
ou.bashrc
se você achar que essa é realmente a configuração do problema.fonte