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.conf
atau /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.conf
dari 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-server
adalah 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.conf
atau /etc/tmux.conf
.
Untuk mendapatkan perubahan agar benar-benar berlaku, Anda mungkin perlu tmux kill-server
dan kemudian tmux
untuk me-restart tmux.
Gunakan chsh(1)
:
chsh -s /bin/zsh $USER
Log-out dan log-in kembali memperbaiki masalah saya. Ketika digaungkan $SHELL
masih /bin/bash
tapi setelah log-out itu diubah menjadi/usr/bin/zsh
tmux tampaknya menggunakan SHELL
variabel lingkungan, jadi yang berikut harus berfungsi:
SHELL=/usr/bin/zsh tmux
atau
env SHELL=/usr/bin/zsh tmux
/bin/bash
untuk memastikan tidak ada kerusakan non-iteraktif. ITerm tidak akan mengatur $SHELL
ke 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-shell
tidak disetel secara eksplisit.
env SHELL=/usr/bin/zsh tmux
lebih 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 -V
2.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 -g
bukan set -g
. berbagai versi tmux yang paling mungkin
set
adalah alias untuk set-option
.