Saya menyesuaikan bash PS1
prompt saya dengan file ~ / .bashrc ini . Saya tidak tahu mengapa warna output saya berubah setelah 2 baris pertama output.
Adakah ide yang dapat menyebabkan masalah ini?
Saya menyesuaikan bash PS1
prompt saya dengan file ~ / .bashrc ini . Saya tidak tahu mengapa warna output saya berubah setelah 2 baris pertama output.
Adakah ide yang dapat menyebabkan masalah ini?
Jawaban:
Masalahnya tampaknya tidak ada urutan keluar untuk mereset warna pada akhir prompt, sehingga teks perintah juga berwarna karena penerjemah tidak tahu harus berhenti mewarnai. Anda harus menambahkan urutan pelarian ini di akhir prompt Anda \[\033[0m\]
. Jadi urutan prompt Anda akan menjadi seperti:
"${USER_COLOR}\u${WHITE}@${SYSTEM_COLOR}\h ${CYAN}\w ${RED}"'$(rvm_prompt)'"${GREEN}"' $(__git_ps1 "(%s)") '"${WHITE} $\[\033[0m\] "
Anda dapat mengaitkan urutan ini dengan variabel, menambahkannya ke definisi fungsi prompt dan menggunakannya seperti dengan definisi warna lainnya:
local RESET="\[\033[0m\]"
Dengan demikian, promptnya adalah:
"${USER_COLOR}\u${WHITE}@${SYSTEM_COLOR}\h ${CYAN}\w ${RED}"'$(rvm_prompt)'"${GREEN}"' $(__git_ps1 "(%s)") '"${WHITE} $${RESET} "
Untuk bacaan lebih lanjut, Anda harus memeriksa artikel Wiki Lengkungan Color Bash Prompt .
Karena ls
menggunakan --color=...
, dan mengirim kontrol esc untuk menghapus warna di garis akhir.
Cobalah ls -l --color=none
:, karakternya akan berwarna putih semua.