Alias ​​dan tux

12

Alias ​​didefinisikan .bash_aliasesdan .bashrctidak berfungsi tmux.

Bisakah ini diubah di beberapa konfigurasi, jadi alias berfungsi di bawah tmux?

xralf
sumber
2
Apakah Anda yakin ada masalah tmux? Saya menggunakan tmux sekitar setahun dan belum melihat masalah dengan alias. Coba tambahkan set -xdi awal perintah Anda .bashrcdan jalankan . Mungkin Anda akan menemukan kesalahan dan itu akan menyelesaikan masalah Anda. tmuxsource ~/.bashrc
buru

Jawaban:

9

tmuxmeluncurkan shell login secara default, jadi ~/.bashrctidak akan dieksekusi (yang kemudian sumber ~/.bash_aliases. Anda perlu sumber ~/.bashrcdari Anda ~/.bash_profile. Lihat INVOCATIONbagian man bash.

Chris Down
sumber
19

( Jawaban Chris Down memiliki penjelasan yang benar tetapi tidak ada solusi yang baik)

Masalah Anda berasal dari kombinasi bug desain bash dan bug desain tmux.

Secara default, tmux memulai shell login di setiap jendela. Ini tidak masuk akal: jika Anda telah menetapkan tmux sebagai shell login Anda, Anda perlu mengatur default-commandopsi untuk sesuatu selain tmux; dan jika Anda belum menetapkan tmux sebagai shell login Anda, Anda perlu mengatur default-commandopsi untuk menghindari memulai shell login di dalam tmux. Jadi cibir ini di Anda ~/.tmux.confuntuk memberitahu tmux untuk memulai shell biasa:

set-option -g default-command $SHELL

Maka Anda .bashrcakan dibaca. Ada masalah lain dengan bash, yang tidak masalah di sini jika Anda mengkonfigurasi tmux seperti yang direkomendasikan di atas, tetapi yang akan muncul lagi jika Anda masuk dalam mode teks (pada konsol teks, atau melalui SSH). Bash membaca ~/.bash_profiledi shell login, dan ~/.bashrcdi shell interaktif tetapi hanya jika mereka bukan shell login. Untuk membaca ~/.bashrcjuga di shell login jika interaktif, tambahkan ini ke ~/.bash_profile:

case $- in *i*) . ~/.bashrc;; esac
Gilles 'SANGAT berhenti menjadi jahat'
sumber
+! Butuh bagian terakhir untuk mendapatkan alias dan PS1 prompt saya diperbaiki, tetapi ternyata berhasil!
Michael Durrant