为了tmux在每次 shell 登录时启动,将以下内容添加到~/.bashrc(在服务器上):
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new; exit
fi
Run Code Online (Sandbox Code Playgroud)
当 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@'
Run Code Online (Sandbox Code Playgroud)
如您所见,set-titles被设置为on,但它没有按预期工作。
更多信息:
在 tmux 之外:
$ echo $TERM
xterm
Run Code Online (Sandbox Code Playgroud)
tmux 内部:
$ echo $TERM
screen
Run Code Online (Sandbox Code Playgroud)
show -g: https://clbin.com/h7oDh
tmux info:http : //sprunge.us/XHCB
这是运行一段时间后的日志tmux -vvvvv:
如果我注释掉 中的行~/.bashrc,从我的笔记本电脑,ssh 到服务器,标题栏显示正确 ( quanta@server),然后tmux从那里开始也按预期工作。
但是如果我想tmux在登录后立即启动,标题栏仍然quanta@Ubuntu在 ssh 之后。
更新 2013 年 5 月 10 日星期五 07:51:23 ICT
exit为了在最后一个tmux窗口关闭时不关闭 shell 会话,我删除了该命令:
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new
fi
Run Code Online (Sandbox Code Playgroud)
奇怪的是:
quanta@Ubuntutmux-> 标题栏切换到quanta@servertmux再次附加-> 标题栏仍然正确显示
quanta@server我不确定它是否与PROMPT_COMMAND环境变量有关:
之外tmux:
$ echo $PROMPT_COMMAND
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
Run Code Online (Sandbox Code Playgroud)
内部tmux:
$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
Run Code Online (Sandbox Code Playgroud)
qua*_*nta 15
问题解决了!
要启用原生 xterm 鼠标滚动tmux,很多wiki、问答站点、博客文章都建议添加如下一行:
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Run Code Online (Sandbox Code Playgroud)
到~/.tmux.conf。它是罪魁祸首。
要在终端窗口中允许 xterm 标题,您还需要添加XT标志,如下所示:
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@"
Run Code Online (Sandbox Code Playgroud)
来源:http : //opennomad.com/content/goodbye-screen-hello-tmux
| 归档时间: |
|
| 查看次数: |
13815 次 |
| 最近记录: |