tmux non rispetta il flusso di controllo disabilitato


8

Nella mia shell ho disabilitato il controllo del flusso usando stty -ixon. Funziona perfettamente nella shell e quando avvio tmuxe avvio programmi all'interno tmux.

Tuttavia, quando si avvia una nuova sessione dalla riga di comando e si avvia direttamente un comando, l'impostazione del controllo di flusso non viene rispettata e ctrl-scongela il terminale.

Questo funziona:

tmux new-session -s foo
vim

Questo non rispetta l' sttyimpostazione del controllo di flusso:

tmux new-session -s foo vim

Come posso disabilitare il controllo del flusso anche in quest'ultimo caso?


È sufficiente disabilitare il controllo del flusso tutti insieme all'interno tmuxper tutti i casi o sei interessato a inchiodare perché funziona nel primo esempio ma non nel secondo?
slm

@slm In primo luogo, vorrei che fosse risolto. Tuttavia, sono interessato al motivo per cui tmux si comporta così.
Marco,

Risposte:


5

Se hai stty -ixonl'inizializzazione della tua shell, è piuttosto semplice: quando tmuxcrea nuovi terminali, esegue la shell predefinita dell'utente per impostazione predefinita e che a sua volta disabilita il flusso di controllo durante l'inizializzazione. Tuttavia, quando chiedi a tmux di eseguire un comando specifico (ViM nel tuo caso), non viene eseguita l'inizializzazione e si applicano le impostazioni predefinite del terminale (controllo di flusso abilitato).

tmux new-session -s foo "stty -ixon; vim"

dovrebbe risolvere il tuo problema.


5

Una soluzione alternativa che non richiede la modifica della tmuxchiamata consiste sttynell'includere la chiamata nel file $HOME/.zshenv. Questo file viene analizzato da ZSH e utilizzato anche per shell non interattive.

echo 'stty -ixon' | tee -a ~/.zshenv
# ... or ...
echo 'stty -ixon' >> ~/.zshenv

Gli utenti BASH devono impostare la variabile d'ambiente BASH_ENV=$HOME/.zshenvper farlo funzionare.


2
Non so cosa faccia, ma ha funzionato. Aggiunto ad entrambi .zshrce .zshenv. Stai attento >però. Usa:echo 'stty -ixon' >> ~/.zshenv
firedev il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.