ในการตั้งค่าใหม่ tmux ใช้ทุบตีแทนค่าเริ่มต้นของฉัน (zsh)
ฉันจะบังคับให้ใช้ zsh ได้อย่างไร
ในการตั้งค่าใหม่ tmux ใช้ทุบตีแทนค่าเริ่มต้นของฉัน (zsh)
ฉันจะบังคับให้ใช้ zsh ได้อย่างไร
คำตอบ:
set-option -g default-shell /bin/zsh
ในหรือ~/.tmux.conf /etc/tmux.confทำงานกับ Fedora
คุณอาจต้องรีสตาร์ท tmux ด้วย killall tmux; tmux
tmuxหากยังไม่ได้ผลสำหรับคุณแล้วให้แน่ใจว่าคุณได้เริ่มต้นใหม่ ดูเหมือนจะเห็นได้ชัด แต่เอาฉันเป็นชั่วโมงที่ดีในการคิดออก!
killall tmux; tmuxรีสตาร์ทวิธี เอาฉันไปซักพักนึง
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.confจากบรรทัดคำสั่ง
tmux kill-serverแทน
ขั้นแรกให้แน่ใจว่าเชลล์เริ่มต้นของคุณตั้งค่าอย่างถูกต้องเป็น zsh ผ่านการรันในบรรทัดคำสั่งของคุณ:
chsh -s $(`which zsh`) $USER
การวาง folloowing ใน~ / .tmux.confเป็นตัวเลือกที่แข็งแกร่งกว่าสำหรับเชลล์ใด ๆ
set-option -g default-shell $SHELL
chsh -s) เนื่องจาก tmux เสนอทางเลือกโดยอิสระ
วางบรรทัดนี้ที่ด้านล่างของคุณ ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
หลังจากคุณเพิ่มแล้วให้ฆ่าและรีสตาร์ทเซิร์ฟเวอร์ tmux ของคุณและทุกอย่างจะทำงานได้
tmux kill-serverเป็นคำสั่งให้วางเซิร์ฟเวอร์ tmux ทั้งหมด
set-option -g default-shell อย่างไร ดูเหมือนว่าข้างต้นจะไม่ทำงานกับเปลือกปลา
หากคุณต้องการบังคับให้ tmux ใช้เชลล์เดียวกันตามที่ระบุในตัวแปรสภาวะแวดล้อมของคุณคุณสามารถใช้:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
ในของคุณหรือ~/.tmux.conf/etc/tmux.conf
ที่จะได้รับการเปลี่ยนแปลงที่จะมีผลบังคับใช้จริงคุณอาจจะต้องtmux kill-serverแล้วtmuxที่จะเริ่มต้นใหม่ tmux
การออกจากระบบและการลงชื่อเข้าใช้แก้ไขปัญหาของฉันอีกครั้ง เมื่อ echoed $SHELLมันยังอยู่/bin/bashแต่หลังจากออกจากระบบมันก็เปลี่ยนเป็น/usr/bin/zsh
tmux ดูเหมือนจะใช้SHELLตัวแปรสภาวะแวดล้อมดังนั้นสิ่งต่อไปนี้ควรใช้ได้:
SHELL=/usr/bin/zsh tmux
หรือ
env SHELL=/usr/bin/zsh tmux
/bin/bashเพื่อให้แน่ใจว่าไม่มีการหยุดพักที่ไม่ทำซ้ำ iTerm จะไม่ตั้งค่า$SHELLชื่อเชลล์ใหม่ (ไม่แน่ใจว่าทำไม) และ bash initialisation จะตั้งเป็นเชลล์ล็อกอินหากไม่ได้ตั้งค่าเมื่อเริ่มต้น tmux จะใช้ค่านี้หากdefault-shellไม่ได้ตั้งค่าไว้อย่างชัดเจน
env SHELL=/usr/bin/zsh tmuxจะดีกว่า (อัพเดทคำตอบ)
เพิ่มลงในของคุณ ~/.tmux.conf
set -g default-command /usr/local/bin/fish
คำตอบที่ยอมรับไม่ได้ผลสำหรับฉัน
ฉันต้องเขียนทั้งสอง
set -g default-shell "/bin/bash"
และ
set -g default-commanmd "/bin/bash"
ในของฉัน~/.tmux.conf- อย่าลืมที่tmux kill-server; tmuxจะโหลด tmux.conf
ฉันใช้tmux -V2.6 ภายใต้ Ubuntu 18 ในโปรแกรมจำลอง gnome-shell
ฉันยังเพิ่ม tmux กับhttps://github.com/samoshkin/tmux-config ลองดูสิมันเจ๋งจริงๆ
สำหรับฉันฉันต้องเปลี่ยน:
default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
กับ
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
ใน.tmux.conf
และเรียกใช้คำสั่งtmux kill-server; tmux
set-option -g set -gtmux เวอร์ชันต่าง ๆ น่าจะเป็น
setset-optionเป็นนามแฝงสำหรับ