Trên một thiết lập mới, tmux đang sử dụng bash thay vì mặc định của tôi (zsh).
Làm thế nào tôi có thể buộc nó sử dụng zsh?
Trên một thiết lập mới, tmux đang sử dụng bash thay vì mặc định của tôi (zsh).
Làm thế nào tôi có thể buộc nó sử dụng zsh?
Câu trả lời:
set-option -g default-shell /bin/zsh
trong ~/.tmux.confhoặc /etc/tmux.conf. Hoạt động trên Fedora.
Bạn có thể phải khởi động lại tmux với killall tmux; tmux
tmux. Có vẻ rõ ràng nhưng tôi đã mất một giờ tốt để tìm ra!
killall tmux; tmux. Mất khá nhiều thời gian để tìm hiểu.
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.conftừ dòng lệnh.
tmux kill-serverthay thế.
Trước tiên, đảm bảo shell mặc định của bạn được đặt đúng thành zsh thông qua việc chạy này trong dòng lệnh của bạn:
chsh -s $(`which zsh`) $USER
Đặt dấu phẩy trong ~ / .tmux.conf của bạn là một tùy chọn mạnh mẽ hơn cho mọi vỏ.
set-option -g default-shell $SHELL
chsh -s) vì tmux cung cấp tùy chọn độc lập với điều đó.
Thả dòng này ở dưới cùng của bạn ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
Sau khi bạn thêm nó, giết và khởi động lại máy chủ tmux của bạn và tất cả sẽ hoạt động.
tmux kill-serverlà lệnh kết thúc tất cả các máy chủ tmux
set-option -g default-shell như thế nào? ở trên dường như không hoạt động với vỏ Cá.
Nếu bạn muốn buộc tmux sử dụng cùng một vỏ như được chỉ định trong biến môi trường của mình, bạn có thể sử dụng:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
trong ~/.tmux.confhoặc của bạn /etc/tmux.conf.
Để có được sự thay đổi để thực sự có hiệu lực, bạn có thể cần phải tmux kill-servervà sau đó tmuxkhởi động lại tmux.
Đăng xuất và đăng nhập lại đã khắc phục vấn đề của tôi. Khi lặp lại, $SHELLnó vẫn còn /bin/bashnhưng sau khi đăng xuất, nó đã được đổi thành/usr/bin/zsh
tmux dường như sử dụng SHELLbiến môi trường, do đó, nên hoạt động như sau:
SHELL=/usr/bin/zsh tmux
hoặc là
env SHELL=/usr/bin/zsh tmux
/bin/bashđể đảm bảo không có gì phá vỡ không lặp. iTerm sẽ không được đặt thành $SHELLtên shell mới (không chắc chắn tại sao) và khởi tạo bash sẽ đặt nó vào shell đăng nhập nếu không được đặt khi khởi động. tmux sau đó sử dụng giá trị này nếu default-shellkhông được đặt rõ ràng.
env SHELL=/usr/bin/zsh tmuxlà tốt hơn? (cập nhật câu trả lời).
Thêm cái này vào ~/.tmux.conf
set -g default-command /usr/local/bin/fish
Câu trả lời được chấp nhận không làm việc cho tôi.
Tôi đã phải viết cả
set -g default-shell "/bin/bash"
và
set -g default-commanmd "/bin/bash"
trong tôi ~/.tmux.conf- Đừng quên tmux kill-server; tmux, để tải lại tmux.conf
Tôi đang sử dụng tmux -V2.6 trong Ubuntu 18 trong trình giả lập shell gnome.
Tôi cũng đã tăng cường tmux với https://github.com/samoshkin/tmux-config . Kiểm tra xem, nó thực sự mát mẻ.
Đối với tôi, tôi đã phải thay thế:
default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
với
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
trong .tmux.conf
và chạy lệnhtmux kill-server; tmux
set-option -gthay vì set -g. các phiên bản khác nhau của tmux có lẽ nhất
setlà một bí danh cho set-option.