要开始tmux每次shell登录,~/.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:
- tmux-client-8441.log:https://clbin.com/eFwFF
- tmux-out-8443.log:https://clbin.com/MSKZv
- tmux-server-8443.log:https ://clbin.com/JXwRN
如果我注释掉了~/.bashrc从笔记本电脑,ssh到服务器的中的行,则标题栏正确显示(quanta@server),然后tmux从那里开始也可以正常工作。
但是,如果我要tmux在登录后立即开始,则标题栏仍然位于quanta@Ubuntussh之后。
更新星期五5月10日07:51:23 ICT 2013
我删除了该exit命令,以便在关闭最后一个tmux窗口时不关闭外壳程序会话:
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\\"
tmux info。