Baru-baru ini saya memutuskan untuk mengubah variabel PS1 saya untuk mengakomodasi beberapa warna Solarized cantik untuk kesenangan menonton terminal saya. Ketika tidak dalam sesi tmux, semuanya hebat! Pelangi, kuda poni, unicorn, dan prompt yang dapat dibedakan! Keren!
Masalahnya adalah dalam tmux, namun. Saya telah memverifikasi bahwa nilai PS1 adalah apa yang saya harapkan dan sama seperti ketika tmux tidak berjalan, yaitu \[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]
.
Semua alias saya, dll di .bash_profile saya juga berfungsi seperti yang diharapkan. tmux juga menampilkan warna tanpa insiden, sebagaimana echo -ne "\033[1;33m hi"
berperilaku seperti yang diharapkan gls --color
.
Baris yang relevan saat ini di .bash_profile saya adalah export PS1="\[\033]0;\w\007\]\[\[\]\]\u\[\]@\[\[\]\]\h\[\]:\[\]\W\[\]$ \[\]"
, meskipun pada awalnya saya sedang mencari skrip yang terletak di file .bash_prompt untuk menangani beberapa persyaratan, dll. Saya mencoba kembali ke versi yang lebih sederhana.
Eksekusi bash
akan menyebabkan prompt untuk mewarnai, tetapi harus dilakukan di setiap panel. export PS1=[that long string I've already posted]
tidak akan.
.Tmux.conf saya adalah sebagai berikut:
set-option -g default-command "reattach-to-user-namespace -l /usr/local/bin/bash"
set -g default-terminal "xterm-256color"
set-window-option -g automatic-rename on
bind '"' split-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
Bagian yang relevan dari .bash_profile:
export TERM="xterm-256color"
if which tmux >/dev/null 2>&1; then
test -z "$TMUX" && (tmux attach || tmux new-session)
fi
Saya menggunakan macOS Sierra, iTerm 2, saya sudah mencoba versi homebrew bash dan system bash (saat ini menggunakan homebrew), tmux 2.4.
Saya juga ditempatkan touch testing_touch_from_bash_profile
di .bash_profile saya saat dalam sesi tmux dengan dua panel, membunuh satu panel, membuka panel dan memverifikasi bahwa file itu sebenarnya dibuat.
echo $TERM
kembali xterm-256color
.
Saya telah memastikan bahwa ketika keluar tmux untuk menguji perubahan pengaturan, saya telah keluar dari tmux dan bahwa tidak ada proses tmux saat ini berjalan pada sistem melalui ps -ax | grep tmux
.
Anehnya, sumber skrip .bash_prompt juga mengubah warna selama saya melakukannya di setiap panel tmux.
Saya telah melihat /programming/21005966/tmux-prompt-not-following-normal-bash-prompt-ps1-w dan mencoba menambahkan bendera --login setelah panggilan bash di baris pertama .tmux.conf saya. Meluncurkan tmux with tmux new bash
akan menyebabkan panel pertama berwarna, tetapi panel selanjutnya tidak.
Variabel $ PS1 dihormati karena tampaknya semua aspek kecuali mewarnai salah satu bidang.
Adakah yang punya ide?
PS1
pengaturan Anda diposting tidak memiliki perintah apapun untuk mengubah warna. Posting pengaturan aktual yang berfungsi di luar tmux. Juga, Anda harus menetapkan PS1
di .bashrc
, tidak .bash_profile
: .bash_profile
mungkin tidak dijalankan sama sekali, dan pengaturan mungkin ditimpa kemudian.