Ketika saya membuka Terminal (pada Mac OS X 10.5.8) dan ketik baris perintah yang panjang:
... teks tidak menuju ke baris berikutnya ketika membungkus:
Juga, kadang-kadang ketika saya mengetik perintah dan kemudian mundur (atau panah atas atau ^ U):
... seluruh baris tidak terhapus dan saya tidak bisa mundur melampaui titik tertentu:
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 .bashrc
untuk:
export PS1='\[\033[1;34m\]\$\[\033[0m\] '
...memecahkan masalah.
\]
.\]
bukannya '[`Jawaban:
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:
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.sumber
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.
sumber
tput
perintah yang benar - yang telah memperbaiki baris baru, `` baris baru dan perbaikan "riwayat + backspacing" lainnya yang menggunakan kode ANSI lainnya tidak dapat diperbaiki.