คำถามนี้เป็นผลสืบเนื่องจากคำตอบของคำถามนี้ เกี่ยวกับการเปลี่ยนสีของข้อความแจ้งผู้ใช้ในเทอร์มินัล XFCE: เทอร์มินัล Ubuntu (Xfce): ทำให้คำสั่งอินพุตมีสีตัวอักษรที่แตกต่างจากข้อความเอาต์พุต
เนื่องจากฉันไม่ได้รับอนุญาตให้แสดงความคิดเห็นที่นั่น (ชื่อเสียงขั้นต่ำ 50) ฉันจึงต้องเปิดคำถามใหม่
ตามคำตอบฉันใช้คำสั่งต่อไปนี้:
PS1='\e[1;36m\u@\h \W]\$\e[0m '
ซึ่งจะทำให้รูปแบบเหมือนกับค่าเริ่มต้น แต่เปลี่ยนสีเป็นสีฟ้าตามที่คาดไว้
อย่างไรก็ตาม ฉันเริ่มมีพฤติกรรมแปลกๆ บางครั้งเคอร์เซอร์จะกระโดดกลับไปที่บรรทัดอินพุต และบางครั้งก็จะแสดงข้อความเก่าที่ไม่ควรมี บางครั้งก็แยกเป็นสองบรรทัดที่ผมพิมพ์ต่อในบรรทัดข้างบน ตัวอย่างเช่น:
พูดว่าฉันต้องการทำ:
$ cd /some/path/to/a/ไดเรกทอรี
แต่พอพิมพ์กลายเป็นว่า
$ cd /some/pa/directoryath/to
ถ้าพิมพ์ enter ก็ยังอ่านคำสั่งได้ถูกต้อง แค่แสดงผลก็ผิดแล้ว เมื่อมันเกิดขึ้น ถ้าฉันพยายามใช้ backspace มันจะกลายเป็นแบบนี้:
$ cd /some/pa/directoryath/to
$ cd /some/pa/directo
$ cd /some/pa -------- ณ จุดนี้ ฉันไม่สามารถลบสิ่งอื่นใดได้
ในการแสดงอักขระบางตัวยังคงอยู่
เอ้อระเหย แต่ถ้าฉันพิมพ์ enter ไม่มีอะไรในบรรทัดอินพุต
อีกตัวอย่างหนึ่ง สมมติว่าฉันมีสิ่งต่อไปนี้ปรากฏขึ้น:
$ ล
โฟลเดอร์1 โฟลเดอร์2 โฟลเดอร์3 โฟลเดอร์4
และตอนนี้ฉันต้องการพิมพ์คำสั่งอื่น สิ่งต่อไปนี้อาจเกิดขึ้น:
$ ล
โฟลเดอร์1 โฟลเดอร์2 โฟลเดอร์3 โฟลเดอร์
$ cd /some/path/to/a/di
อีกครั้งถ้าฉันพิมพ์อินพุตจะรับรู้อย่างถูกต้อง แต่จอแสดงผลเสีย
ปัญหานี้เกิดขึ้นบ่อยที่สุด แต่ไม่ใช่เฉพาะเมื่อฉันพิมพ์ลูกศรขึ้นเพื่อรับคำสั่งก่อนหน้า หรือเมื่อบรรทัดอินพุตเข้าใกล้ขอบด้านขวาของหน้าต่าง