Por ejemplo, si estoy ingresando tail -f
un archivo o read
ingresando la entrada del usuario, <Enter>
produciré ^M
en el terminal en lugar de terminar read
o agregar una nueva línea a stdout. ^J
funciona bien.
Estoy ssh
ingresando al sistema ubuntu, si eso importa. Esto me pasa tanto en zsh como en bash. Una solución con la que jugué es reasignar a ^M
to ^J
en zsh, pero parece que no solucionaría el problema raíz. Alguien sabe lo que podría estar causando esto?
Editar: para responder algunas preguntas, estoy ssh
ingresando a Ubuntu desde OSX. Estoy usando iTerm y zsh. También olvidé mencionar que estoy usando tmux en la máquina Ubuntu.
Edición 2: se perdió una pregunta. Cuando escribo Ctrl-V Enter
me sale ^M
(tanto en OSX como en Ubuntu).
Edición 3: en OSX y Ubuntu echo $TERM
produce screen-256color
.
fuente
Respuestas:
En caso de que alguien más tenga este problema, es muy probable que sea un problema con la configuración de la línea de terminal stty en lugar de un problema TERM. Si esto le sucede nuevamente, intente ejecutar
stty sane
y háganos saber si eso lo soluciona.fuente
Intente ejecutar
stty -a
para ver la configuración de su terminal. Mi sospecha es que suicrnl
configuración no está configurada y se mostrará como-icrnl
(el signo menos significa que está desactivada) en lugar de tener su configuración habitual de estar activada. Así es como normalmente se configura mi terminal cuando inicio sesión:Y no tengo ningún problema con las terminaciones de línea: ya sea return (^ M) o enter (^ J) finalizarán las líneas de entrada. Pero si
icrnl
apago los códigos ^ M aparecen de repente cada vez que estoy hablando con un programa y presiono enter:El código
icrnl
significa "convertir los retornos de carro en nuevas líneas" y oculta del programa en ejecución que podría estar escribiendo ^ M cuando Unix realmente quiere ^ J. Los teclados antiguos solían tener una tecla Intro e Intro separadas (donde la Ingreso generalmente lo avanzaba a través de un formulario y Enter la envió), pero hoy en día generalmente solo tenemos una tecla de final de línea, por lo que esta configuración de terminal ayuda a combinar los dos significados.Agregue el
stty icrnl
comando a su.profile
o.bashrc
si encuentra que esta es realmente la configuración del problema.fuente