¿Por qué el terminal no muestra nuevas líneas?

16

Por ejemplo, cuando escribo el siguiente comando,

echo line | (cat >/dev/null; vi)

incluso envuelto en otro caparazón,

sh -c 'echo line | (cat >/dev/null; vi)'

y regresó de Vim, ahora ya no mostrará el retorno de carro.

¿Cómo puedo hacer para que vuelva a mostrar las nuevas líneas? (Sin salida)

Xiè Jìléi
fuente
comentario obligatorio de cambio a emacs :)
Dang Khoa

Respuestas:

35

pruebe uno o ambos de estos:

  • escriba ctrl+c, luego escriba reset, luego presione enter.
  • escriba ctrl+c, luego escriba stty sane, luego presione enter.

Esto ctrl+ces para borrar cualquier otro carácter que haya escrito en la línea de comando.

reseto stty sanegeneralmente arregla un terminal desordenado. Lea la página de manual de resety sttypara obtener más información.

Tenga en cuenta que si el terminal está en mal estado lo suficiente, entonces puede ser que ni siquiera ctrl+co enterfuncionará como se espera. Todavía hay otros métodos para ingresar caracteres, pero involucran magia oscura antigua. En ese caso, generalmente es más fácil cerrar el terminal e iniciar otro.

Mi comprensión del funcionamiento interno de una terminal no es lo suficientemente profunda como para explicar por qué o cómo lo hace.

lesmana
fuente
4

No es el uso previsto para vitomar la entrada de stdin.

De todos modos, puedes obtener nuevas líneas nuevamente con

stty sane

sin reiniciar el terminal.

enzotib
fuente