Memperbaiki bug tampilan baris-pembungkus & backspace pada Mac OS X?

14

Ketika saya membuka Terminal (pada Mac OS X 10.5.8) dan ketik baris perintah yang panjang: teks alternatif

... teks tidak menuju ke baris berikutnya ketika membungkus: teks alternatif teks alternatif

Juga, kadang-kadang ketika saya mengetik perintah dan kemudian mundur (atau panah atas atau ^ U): teks alternatif

... seluruh baris tidak terhapus dan saya tidak bisa mundur melampaui titik tertentu: teks alternatif teks alternatif

Apakah ini bug bash yang dikenal (di Mac OS X)? Apakah ada perbaikan?

Pembaruan: Juliano benar, masalahnya disebabkan oleh salah membatasi urutan kode konsol dalam variabel PS1 saya. Mengubah:

export PS1='\[\033[1;34m\]\$\]\033[0m\] '

... di dalam saya .bashrcuntuk:

export PS1='\[\033[1;34m\]\$\[\033[0m\] '

...memecahkan masalah.

Daryl Spitzer
sumber
1
+1 untuk tangkapan layar paling indah dari layar terminal yang pernah saya lihat.
Dijeda sampai pemberitahuan lebih lanjut.
1
dua baris kode yang Anda perlihatkan dalam pembaruan Anda identik.
Magne
Tangkapan yang bagus, @Magne. Sudah empat tahun sejak saya melihat ini, jadi saya tidak ingat secara khusus, tapi saya menganggap "sebelum" hilang a \].
Daryl Spitzer
mereka tidak identik: yang pertama \]bukannya '[`
Ohad Cohen

Jawaban:

19

Perilaku ini konsisten untuk memiliki kode konsol di prompt Anda (untuk mengubah warna, dll.) Dan tidak menandai dengan benar maka sehingga bash tahu bahwa mereka tidak terlihat.

Sebelum hal lain, lakukan ini:

PS1='\w\$ '

Lalu coba lagi. Jika masalah terpecahkan, maka kecurigaan saya benar.

Setiap urutan kode konsol harus dibatasi dengan \[dan \]dalam variabel PS1. Mereka mengatakan kepada bash bahwa apa pun yang ada di sana tidak memindahkan posisi kursor. Baca manual bash untuk informasi lebih lanjut.

Juliano
sumber
Itu masalahnya. Terima kasih! Saya akan memperbarui pertanyaan saya dengan detail.
Daryl Spitzer
Dan bagaimana jika itu tidak menyelesaikan masalah?
levesque
3

Untuk membantu menghasilkan prompt yang bersih, coba http://www.kirsle.net/wizards/ps1.html ini cukup mengagumkan. Berhati-hatilah dengan tanda kurung di prompt Anda, itu mencoba untuk melarikan diri atau sesuatu.

Dan Green
sumber
+1 Sementara jawaban Juliano secara teknis benar, tautan ini adalah yang mengatur tputperintah yang benar - yang telah memperbaiki baris baru, `` baris baru dan perbaikan "riwayat + backspacing" lainnya yang menggunakan kode ANSI lainnya tidak dapat diperbaiki.
Eric Duncan