Utilizo tmux en mi servidor y recientemente descubrí que ctrl-d saldrá de tmux y perderá toda la información de la sesión, mi intención era simplemente finalizar la sesión ssh pero no noté que todavía estaba en tmux hasta demasiado tarde.
Soy consciente de que debería tener cuidado en el futuro cuando use ctrl-d, pero me preguntaba si hay alguna manera de evitar que tmux salga al golpear ctrl-d por accidente. Una solución como un aviso, confirmación o separación estaría bien.
set-environment -g 'IGNOREEOF' 2
en.tmux.conf
y ahora tenga que pulsar Ctrl-d 3 veces a la salida y también estoy advertido cada vez con el mensaje:Use "logout" to leave the shell.
IGNOREEOF
no funcionó para mí, así que limité Ctrl+ Dadetach
en .tmux.conf:bind-key -n C-d detach
Esto
-n
significa que no se necesita una secuencia de escape previa, como el prefijo tmux.fuente
IGNOREOF
no funcionaba para mí antes, ya que estoy usando zsh.setopt ignoreeof
en.zshrc
obras Pero tuve que matar todas las sesiones de tmux para que tmux lo buscara.zshrc
. Tal vez podría haber provenido.zshrc
de 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
para reiniciar zsh dentro de tmux cuando estoy jugando con el .zshrcAdemás de chepner respuesta puede detener el terminal desde el envío de EOF en su totalidad mediante el establecimiento
eof
deundef
constty
:Restablecer con:
fuente