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.conf
hoặ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.conf
từ dòng lệnh.
tmux kill-server
thay 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-server
là 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.conf
hoặ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-server
và sau đó tmux
khở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, $SHELL
nó vẫn còn /bin/bash
nhưng sau khi đăng xuất, nó đã được đổi thành/usr/bin/zsh
tmux dường như sử dụng SHELL
biế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 $SHELL
tê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-shell
không được đặt rõ ràng.
env SHELL=/usr/bin/zsh tmux
là 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 -V
2.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 -g
thay vì set -g
. các phiên bản khác nhau của tmux có lẽ nhất
set
là một bí danh cho set-option
.