要开始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@Ubuntu
ssh之后。
更新星期五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
。