No meu shell, tenho o controle de fluxo desativado usando stty -ixon
. Isso funciona perfeitamente no shell e quando tmux
inicio e inicio programas dentro
tmux
.
No entanto, ao iniciar uma nova sessão a partir da linha de comando e iniciar diretamente um comando, a configuração de controle de fluxo não é respeitada e ctrl-scongela o terminal.
Isso funciona:
tmux new-session -s foo
vim
Isso não respeita a stty
configuração de controle de fluxo:
tmux new-session -s foo vim
Como posso desativar o controle de fluxo, mesmo no último caso?
tmux
em todos os casos para todos os casos ou você está interessado em saber por que ele funciona no primeiro exemplo, mas não no segundo?Respostas:
Se você possui
stty -ixon
a inicialização do seu shell, é bastante simples: quandotmux
cria novos terminais, ele executa o shell padrão do usuário por padrão e, por sua vez, desabilita o fluxo de controle durante a inicialização. No entanto, quando você solicita ao tmux para executar um comando específico (ViM no seu caso), nenhuma inicialização ocorre e as configurações padrão do terminal (controle de fluxo ativado) se aplicam.deve corrigir seu problema.
fonte
Uma solução alternativa que não requer alteração da
tmux
chamada é incluir astty
chamada no arquivo$HOME/.zshenv
. Este arquivo é analisado pelo ZSH e usado mesmo para shells não interativos.Os usuários do BASH precisam definir a variável de ambiente
BASH_ENV=$HOME/.zshenv
para fazer isso funcionar.fonte
.zshrc
e.zshenv
. Tenha cuidado com>
embora. Uso:echo 'stty -ixon' >> ~/.zshenv