Ketika saya mencoba untuk mewarnai bash
prompt seperti ini:
export PS1="\e[0;31m[\u@\h \W]\$ \e[m "
itu merusak carriage return (alih-alih pergi ke baris baru ketika baris penuh, itu mulai di baris yang sama dan menghapus teks input).
Jika saya menghapus urutan warna itu berfungsi dengan baik.
Saya menggunakan Ubuntu 11.10 dan terminal (guake juga memiliki bug yang sama).
Jawaban:
Anda harus membungkus semua urutan escape antara
\[
dan\]
agar 'readline' untuk menghitung panjang terlihat prompt dengan benar. Tanpa mereka, 'readline' mengira prompt lebih panjang dari itu, dan tidak tahu kapan teks mencapai margin.sumber
\[
,\]
? Saya kira begitu, tetapi sepertinya itu tidak berhasil untuk saya.skip-csi-sequence
dimaksudkan untuk menekan urutan input yang dihasilkan oleh kunci khusus.\e[xxm
urutan, bukan seluruh string.\e[39m
dengan\[\e[;39m\]
dan bekerja dengan baikujung [dan] bekerja pada bash pada OS X 10.8.2 juga.
Saya menggunakan:
yang menunjukkan cabang git saya saat ini digunakan.
sumber