Eu uso o tmux no meu servidor e, recentemente, descobri que o ctrl-d sairá do tmux e perderá todas as informações da sessão, minha intenção era simplesmente encerrar a sessão ssh, mas não percebi que ainda estava no tmux até muito tarde.
Estou ciente de que devo ter cuidado no futuro ao usar o ctrl-d, mas me perguntei se havia uma maneira de impedir que o tmux saísse ao pressionar o ctrl-d por acidente? Uma solução como solicitação, confirmação ou desanexação seria adequada.
set-environment -g 'IGNOREEOF' 2
no.tmux.conf
e agora eu preciso para bater Ctrl-d 3 vezes para sair e eu também estou avisado cada vez com a mensagem:Use "logout" to leave the shell.
IGNOREEOF
fez não trabalho para mim, então eu só limite Ctrl+ Dparadetach
em .tmux.conf:bind-key -n C-d detach
Os
-n
meios nenhuma sequência de escape antes necessário, como o tmux prefixo.fonte
IGNOREOF
não funcionou para mim antes, pois estou usando o zsh.setopt ignoreeof
em.zshrc
obras. Mas eu tive que matar todas as sessões do tmux para que o tmux fosse fonte.zshrc
. Talvez eu pudesse ter originado.zshrc
de dentro tmux ...cat > some_new_file.txt
.^D
.bind -n C-d if-shell -b 'USHELL="$(basename "$(getent passwd $USER | cut -d: -f7)")"; [ $(tmux list-windows | wc -l) -eq 1 -a $(tmux list-panes | wc -l) -eq 1 -a $(pstree $PPID | egrep "\\b$USHELL\$" | grep -o $USHELL | wc -l) -eq 1 ]' detach 'send C-d'
exec zsh
reinício do zsh no tmux quando estou jogando com o .zshrcAlém do chepner resposta que você pode parar o terminal de enviar EOF completamente, definindo
eof
aundef
comstty
:Redefinir com:
fonte