ในการเริ่มต้นtmux
ในการเข้าสู่ระบบเชลล์ทุกครั้งจะมีการเพิ่มสิ่งต่อไปนี้ลงใน~/.bashrc
(บนเซิร์ฟเวอร์):
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new; exit
fi
ฉันยังต้องการเปลี่ยนชื่อหน้าต่างเป็นบางสิ่งเช่นuser@server
(แทนuser@localhost
) เมื่อ ssh เป็นโฮสต์ นี่คือฉัน~/.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 ออก 8443.log: https://clbin.com/MSKZv
- tmux-server-8443.log: https://clbin.com/JXwRN
หากฉันใส่เครื่องหมายในบรรทัด~/.bashrc
จากแล็ปท็อปของฉัน ssh ไปยังเซิร์ฟเวอร์แถบชื่อเรื่องจะแสดงอย่างถูกต้อง (quanta@server
) จากนั้นก็เริ่มtmux
จากที่นั่นก็ทำงานได้ตามที่คาดไว้
แต่ถ้าฉันต้องการเริ่มต้นtmux
ทันทีหลังจากเข้าสู่ระบบแถบชื่อเรื่องจะยังคงอยู่quanta@Ubuntu
หลังจาก ssh
อัพเดทเมื่อวันศุกร์ 10 พฤษภาคม 07:51:23 ICT 2013
ฉันได้ลบexit
คำสั่งเพื่อไม่ให้ปิดเซสชันเชลล์เมื่อtmux
ปิดหน้าต่างสุดท้าย:
if [ $TERM != "screen-256color" ] && [ $TERM != "screen" ]; then
tmux attach || tmux new
fi
สิ่งที่แปลกคือ:
- ssh to server -> แถบหัวเรื่อง:
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
โปรดให้เอาท์พุทจาก