我不确定是否提出了类似的问题,但我在SO中没有找到。
我正在使用侏儒终端 + tmux。我在.zshrc
中添加了if [ "$TMUX" = "" ]; then tmux; fi
,因此当我启动终端时,我会自动输入 tmux。每次我按Ctrl-D
并从 tmux 退出时,我都必须再次按Ctrl-D
才能退出终端。
现在,我可以在我的.zshrc
或tmux.conf
中放入什么,以便只需按一下即可退出我的 tmux 和终端。
我的想法是我可以添加一个侦听器来捕获 tmux 退出事件。如果发生该事件,让我退出窗口。但我不知道如何实现这一目标。任何帮助将不胜感激!
如果以exec
开头tmux
,如下所示:
exec tmux
。父进程 shell 甚至将不再位于内存中,因此退出 TMUX 不会退出回它。
因此,在您的点文件中:
if [ -t 0 ] && [[ -z $TMUX ]] && [[ $- = *i* ]]; then exec tmux; fi
[ -t 0 ]
是一项安全功能:如果您的标准不是 TTY,它会避免前进。同样,$-
检查避免在非交互式 shell 上运行。
顺便说一下,我通常建议将此作为终端配置的一部分,而不是 shell 配置的一部分,以避免无意中影响其他类型的 shell(例如通过 sshd 启动的shell,特别是由自动化工具而不是人类用户启动的(。脚本不应该模拟 TTY,或者声称 shell 是交互式
的,而实际上却会发生,因此这种练习可能会导致意外。