Pada pengaturan baru, tmux menggunakan bash sebagai ganti default saya (zsh).
Bagaimana saya bisa memaksanya untuk menggunakan zsh?
Pada pengaturan baru, tmux menggunakan bash sebagai ganti default saya (zsh).
Bagaimana saya bisa memaksanya untuk menggunakan zsh?
Jawaban:
set-option -g default-shell /bin/zsh
di ~/.tmux.confatau /etc/tmux.conf. Bekerja di Fedora.
Anda mungkin harus memulai ulang tmux dengan killall tmux; tmux
tmux. Tampak jelas tetapi butuh satu jam yang baik untuk mencari tahu!
killall tmux; tmux. Butuh waktu cukup lama untuk mencari tahu.
bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
tmux source-file ~/.tmux.confdari baris perintah.
tmux kill-server.
Pertama pastikan shell default Anda diatur dengan benar ke zsh melalui menjalankan ini di baris perintah Anda:
chsh -s $(`which zsh`) $USER
Menempatkan folloowing di ~ / .tmux.conf Anda adalah opsi yang lebih kuat untuk semua shell.
set-option -g default-shell $SHELL
chsh -s) karena tmux menawarkan opsi yang terpisah dari itu.
Letakkan baris ini di bagian bawah ~/.tmux.conf
set-option -g default-command "reattach-to-user-namespace -l zsh"
Setelah Anda menambahkan itu, bunuh dan mulai ulang server tmux Anda dan semua akan berfungsi.
tmux kill-serveradalah perintah untuk mengakhiri semua server tmux
set-option -g default-shell ? di atas sepertinya tidak bekerja dengan shell Ikan.
Jika Anda ingin memaksa tmux untuk menggunakan shell yang sama seperti yang ditentukan dalam variabel lingkungan Anda, Anda bisa menggunakan:
# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}
di ~/.tmux.confatau /etc/tmux.conf.
Untuk mendapatkan perubahan agar benar-benar berlaku, Anda mungkin perlu tmux kill-serverdan kemudian tmuxuntuk me-restart tmux.
Gunakan chsh(1):
chsh -s /bin/zsh $USER
Log-out dan log-in kembali memperbaiki masalah saya. Ketika digaungkan $SHELLmasih /bin/bashtapi setelah log-out itu diubah menjadi/usr/bin/zsh
tmux tampaknya menggunakan SHELLvariabel lingkungan, jadi yang berikut harus berfungsi:
SHELL=/usr/bin/zsh tmux
atau
env SHELL=/usr/bin/zsh tmux
/bin/bashuntuk memastikan tidak ada kerusakan non-iteraktif. ITerm tidak akan mengatur $SHELLke nama shell baru (tidak yakin mengapa), dan inisialisasi bash akan mengaturnya ke shell login jika tidak disetel pada saat startup. tmux kemudian menggunakan nilai ini jika default-shelltidak disetel secara eksplisit.
env SHELL=/usr/bin/zsh tmuxlebih baik? (memperbarui jawabannya).
Tambahkan ini ke dalam ~/.tmux.conf
set -g default-command /usr/local/bin/fish
Jawaban yang diterima tidak berhasil untuk saya.
Saya harus menulis keduanya
set -g default-shell "/bin/bash"
dan
set -g default-commanmd "/bin/bash"
di ~/.tmux.conf- jangan lupa tmux kill-server; tmux, untuk memuat ulang tmux.conf
Saya menggunakan tmux -V2.6 di bawah Ubuntu 18 di emulator gnome-shell.
Saya juga meningkatkan tmux dengan https://github.com/samoshkin/tmux-config . Lihat itu, sangat keren.
Bagi saya, saya harus mengganti:
default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"
dengan
set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"
masuk .tmux.conf
dan jalankan perintahtmux kill-server; tmux
set-option -gbukan set -g. berbagai versi tmux yang paling mungkin
setadalah alias untuk set-option.