我尝试了很多东西,但 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 将正确更新窗口标题。