7 votos

Suspendido (salida tty) al lanzar editores como vim, vi, emacs o nano

Llevo unas semanas utilizando Oh-My-ZSH y ha sido una gran experiencia. Hoy mismo, sin embargo, la terminal comenzó a actuar de manera extraña. Cuando intento ejecutar un editor de terminal interactivo como vim , vi , emacs o nano El proceso se suspende:

$ vim
[1] + 3515 suspended (tty output) vim

Por supuesto, puedo volver a abrirlo con fg pero esto es increíblemente molesto.

Ayer no tenía este problema. Desde entonces no he reiniciado el ordenador, ni iTerm, ni siquiera he cerrado las pestañas del terminal (desde el que ayer ejecuté con éxito vim sin que se suspendiera).

Además, he revertido temporalmente mi shell a bash. Ahora exhibe este mismo comportamiento de suspensión que ZSH. Este problema ocurre tanto en iTerm2 como en la aplicación nativa Terminal.app de osx, tanto para bash como para zsh, así que presumiblemente no es un problema de mi shell.

He pasado por todas las soluciones de las 10 primeras páginas de Google para este tema, pero no he encontrado ninguna que lo resuelva. Me estoy acercando al punto en el que ya no entiendo por qué sucede esto y por lo tanto no puedo depurarlo.

¿Hay alguna forma de conseguir procesos interactivos como vim para que dejen de suspenderse cuando intento ejecutarlos desde el terminal?

Editar: Desde esta publicación he probado nuevas pestañas de iTerm y Terminal, he vuelto a iniciar iTerm y Terminal, y he reiniciado mi ordenador. Todo esto no ha resuelto el problema.

4voto

DigitalRoss Puntos 80400

La terminal está suspendiendo el editor porque algún otro proceso está escribiendo en la terminal.

Corriendo stty -tostop debe arreglarlo.

Si eso no soluciona el problema, eche un vistazo a este tema de GitHub de la oh-my-zsh depósito.

el problema se debe a un ajuste :set shellcmdflag=-ic . Después de comentar eso de .vimrc todos los problemas relevantes fueron resueltos.

Es evidente que otros usuarios se han encontrado con este problema. Esta parece ser la solución correcta.

1 votos

Gracias por responder tan rápido. Desafortunadamente, he intentado ejecutar stty -tostop pero los intentos posteriores de ejecutar vim (o nano, vi, emacs, etc.) siguen suspendidos. ps a revela que las únicas cosas que funcionan son login -fp y -zsh (y según tengo entendido login lanza -zsh ). ¿Es posible que se esté ejecutando algo más que no puedo ver y que está escribiendo en el terminal?

0 votos

En tu pregunta, dices que no has reiniciado el ordenador, ni has cerrado ninguna ventana/pestaña del Terminal. Si este sigue siendo el caso, prueba ambos. @PhpMyCoder

0 votos

Desde el momento en que se ejecuta vim funcionaba por última vez hasta que hoy ha empezado a suspenderse, no había reiniciado el ordenador/iTerm ni había cerrado ninguna pestaña del terminal. Ahora he hecho las 3 cosas y aún así vim sigue suspendido. Perdón por la confusión, voy a reformular la pregunta.

4voto

Chris Williams Puntos 128

Resulta que leí mal el primer resultado en Google . Asumí incorrectamente que se referían al shell de la terminal (y cuando dijeron shell más tarde supuse que se referían a $SHELL aunque debería haber sido avisado por el hecho de que shell no estaba en mayúsculas). En su lugar, se referían a la configuración del shell de vim, que incorrectamente tenía el -i en lugar de la bandera -l bandera.

Así que en caso de que alguien más tenga este problema, vaya a su .vimrc y cambiar asegúrese de que la línea que establece su shell se ve así:

set shell=/bin/zsh\ -l

(Sustitución de /bin/zsh con el valor de which zsh si se instala en una ubicación no estándar, por supuesto).

Compromiso de referencia: https://github.com/devx/vimified/commit/772e130c9c359ac87927a963e00a9cc6597cd170

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X