zshrcにtmux attach
と記述してtmuxを起動させるというテクニック、ご存知ですよね?とても便利ですし僕自身使っていました。
しかし、この方法では端末の×ボタンを押したときに「この端末を閉じますか?」という警告メッセージが出ます。とてもストレスですし、なにか間違えているのではないかと思い調べてみました。
exec tmuxする
まず結論から言うと、
$ exec tmux attach
とすれば警告が出なくなります。
原理
zshでexecからコマンドを実行すると、シェルのプロセスが指定したコマンドのプロセスに置き換わります。
zsh上で単にtmux attach
とすると、ターミナルを閉じる時には「zshがtmuxの実行を待機している状態」なので「この端末を閉じますか?」という警告が出ます。
それに対し、exec tmux attach
とすると、「tmuxのプロセスが動いているだけ」なので、ターミナルは特に警告を出さないで終了します。
なんとなくおわかりいただけたでしょうか?かくいう私もザックリとしか理解できていないのでアレですが。