¿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)


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.