tmux 设置标题不起作用?

tmux 设置标题不起作用?

为了在每次 shell 登录时启动tmux,将以下内容添加到~/.bashrc(在服务器上):

if [ $TERM != "screen-256color" ] && [  $TERM != "screen" ]; then
    tmux attach || tmux new; exit
fi

我还想在 ssh 进入主机时将窗口标题更改为类似user@server(而不是)的内容。user@localhost这是我的~/.tmux.conf

set -g prefix C-a
unbind C-b
bind C-a send-prefix

set -g set-titles on
set -g set-titles-string "#T"

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

正如您所看到的,set-titles已设置为on,但它没有按预期工作。

更多信息:

在 tmux 之外:

$ echo $TERM
xterm

tmux 内部:

$ echo $TERM
screen

show -g:https://clbin.com/h7oDh

tmux info:http://sprunge.us/XHCB

tmux -vvvvv这是运行一段时间后的日志:

如果我注释掉 中的行~/.bashrc,从我的笔记本电脑,ssh 到服务器,标题栏会正确显示 ( quanta@server),然后tmux从那里开始也按预期工作。

但如果我想tmux在登录后立即启动,标题栏仍然在quanta@Ubuntussh之后。


更新 5 月 10 日星期五 07:51:23 ICT 2013

我删除了该exit命令,以便在tmux关闭最后一个窗口时不关闭 shell 会话:

if [ $TERM != "screen-256color" ] && [  $TERM != "screen" ]; then
    tmux attach || tmux new
fi

奇怪的是:

  • ssh 到服务器 -> 标题栏:quanta@Ubuntu
  • 分离tmux-> 标题栏切换到quanta@server
  • 再次附加tmux-> 标题栏仍然正确显示 quanta@server

不知道是否与PROMPT_COMMAND环境变量有关:

在外面tmux

$ echo $PROMPT_COMMAND 
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"

代替tmux

$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"

答案1

问题解决了!

为了在 中启用本机 xterm 鼠标滚动tmux,有很多维基百科,问答现场,博客文章建议添加一行,例如:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

~/.tmux.conf。而它就是罪魁祸首。

要在终端窗口中允许 xterm 标题,您还需要添加标志XT,如下所示:

set -g terminal-overrides "xterm*:XT:smcup@:rmcup@"

来源:http://opennomad.com/content/goodbye-screen-hello-tmux

答案2

从 tmux-users 邮件列表中发现了这个线程。该主题的标题是:设置标题不起作用。这个线程中有一些事情可以尝试。有一个线程的更干净版本这里也一样。

XTerm 资源

对于初学者来说,最终的修复是将以下行添加到您的 XTerm 资源文件中~/.Xresources

XTerm*allowSendEvents: true

调试 tmux 技巧

该线程中还有一些调试技巧也可能对您有所帮助。

详细的tmux

  1. 关闭所有 tmux 会话
  2. 运行命令:tmux -vvvvv
  3. 运行命令:vi foo
  4. 保存文件
  5. 退出tmux

执行此操作后,您应该有 3 个文件,如下所示:

  • tmux-out-21594.log
  • tmux-client-21592.log
  • tmux-server-21594.log

多路复用信息

$ tmux info
tmux 1.4, pid 22182, started Fri May 10 04:00:37 2013
socket path /var/run/tmux/tmux-500/default, debug level 0
system is Linux 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64
configuration file is /home/saml/.tmux.conf
protocol version is 6

Clients:
 0: /dev/pts/12 (8, 11): 0 [132x24 xterm] [flags=0x1/0x38, references=0]

Sessions: [5/10]
 0: 0: 1 windows (created Fri May 10 04:00:37 2013) [132x23] [flags=0x0]
   0: bash [132x23] [flags=0x8, references=1, last layout=-1]
     0: /dev/pts/48 22183 13 1/23, 135 bytes; UTF-8 0/23, 0 bytes

Terminals:
xterm [references=1, flags=0x0]:
 1: acsc: (string) ``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
 0: AX: (flag) true
 2: bel: (string) \007
 ...
 ...
144: smul: (string) \033[4m
145: vpa: (string) \033[%i%p1%dd
146: xenl: (flag) true

Jobs:

相关内容