退出在 tmux 窗口中启动的 ssh 连接后重置状态栏 tmux

退出在 tmux 窗口中启动的 ssh 连接后重置状态栏 tmux

我尝试了很多东西,但 tmux 似乎在这一点上非常顽固。

当我在 bash 中启动 tmux 会话时,它显示

0:bash*

在我的状态栏中。然后当我 ssh 到服务器时它给了我

0:user@server:~*

当我退出 ssh 会话时,状态栏不会恢复到之前的状态

0:bash*,它只是保留0:user@server:~*

这让我很恼火。我检查了手册页,搜索了互联网,但希望蜂巢思维可以在这里帮助我。

这就是我的 .tmux.conf 中的全部内容,

set -g mouse on
set -g default-terminal "screen-256color"

tmux -V输出tmux 2.6

答案1

问题 :连接到 SSH 服务器时 TMUX 更改状态栏 &才不是退出该 SSH 服务器时将其更改回来。

解决方案 :PROMPT_COMMAND 是环境变量,它给出要在 TMUX 状态栏中显示的值。本地计算机上缺少该内容。将精确设置(从 SSH 服务器获取)放入本地 bash rc 文件中。退出 TMUX 并启动新的 TMUX 会话。

在 SSH 服务器 bash rc 文件中,您可能会看到类似这样的内容:

PROMPT_COMMAND="echo -ne \"\033]0;$USER (on $HOSTNAME)\007\""
export PROMPT_COMMAND

将精确设置放入本地计算机中。

新的 TMUX 窗口或新的 TMUX 会话现在可以正常工作。

如果这没有帮助,则 BASH 正在设置窗口标题,但 TMUX 没有使用它。
然后我们必须通过以下方式让 TMUX 使用标题:
CTRL-B COLON set-options -gw windows-status-format "#I:#W#F"
CTRL-B COLON set-options -gw windows-status-current-format "#I:#W#F"
CTRL-B COLON set-options -gw automatic-rename on

现在,BASH 将设置窗口标题,TMUX 将使用它。
当 SSH 更改窗口标题时,然后 SSH 退出,TMUX 将正确更新窗口标题。

相关内容