Sospeso (output tty) quando si lanciano editor come vim, vi, emacs o nano

3

Uso Oh-My-ZSH da alcune settimane ed è stata una grande esperienza. Proprio oggi, però, il terminale ha iniziato a comportarsi in modo strano. Quando provo a eseguire un editor di terminale interattivo come vim , vi , emacs o nano , il processo è sospeso:

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

Ovviamente, posso riaprirlo con fg , ma questo è incredibilmente fastidioso.

Non ho riscontrato questo problema ieri. Da allora non ho riavviato il mio computer, iTerm, o persino le schede terminali chiuse (da cui ho eseguito correttamente vim ieri senza che sia stato sospeso).

Inoltre, ho temporaneamente ripristinato la shell in bash. Ora mostra questo stesso comportamento sospensivo come ZSH. Questo problema si verifica sia in iTerm2 che in osx Terminal.app nativo sia per bash che per zsh, quindi presumibilmente questo non è un problema con la mia shell.

Ho letto tutte le soluzioni delle prime 10 pagine di Google per questo problema, ma non ne ho trovato uno che lo risolva. Mi sto avvicinando al punto in cui non capisco più perché questo sta accadendo e quindi non riesco a eseguirne il debug.

C'è un modo in cui posso ottenere processi interattivi come vim per interrompere la sospensione di se stessi quando provo a eseguirli dal terminale?

Modifica: Da questo post ho provato il nuovo iTerm & Schede dei terminali, riavviato iTerm & Terminale e riavvia il mio computer. Tutti questi non sono riusciti a risolvere questo problema.

    
posta Bailey Parker 10.08.2015 - 06:07
fonte

2 risposte

2

Il terminale sospende l'editor perché un altro processo sta scrivendo sul terminale.

Eseguendo stty -tostop dovresti risolverlo.

Se ciò non risolve il problema, dai un'occhiata a questo problema di GitHub dal oh-my-zsh repository.

the issue results from a setting :set shellcmdflag=-ic. After I comment[ed] that out from .vimrc all relevant problems were solved.

Gli altri utenti hanno evidentemente incontrato questo problema. Questa sembra essere la soluzione corretta.

    
risposta data 10.08.2015 - 06:28
fonte
1

Risulta che ho letto male il primo risultato su Google . Ho erroneamente assunto che si riferissero alla shell del terminale (e quando hanno detto shell più tardi ho supposto che intendessero $SHELL , anche se avrei dovuto soffermarmi sul fatto che shell non era in maiuscolo). Invece si riferivano all'impostazione della shell vim, che aveva erroneamente il flag -i invece del -l flag.

Quindi, nel caso in cui qualcun altro abbia questo problema, vai nella tua .vimrc e cambia assicurati che la linea che imposta shell assomigli a questa:

set shell=/bin/zsh\ -l

(Sostituendo /bin/zsh con il valore di which zsh se è installato in una posizione non standard, ovviamente).

commit di riferimento: link

    
risposta data 10.08.2015 - 08:22
fonte

Leggi altre domande sui tag