ทำไม§ให้ฉันลบตัวละครสองตัวใน bash promt?


1

นี่เป็นปัญหาที่แปลกประหลาดมากและเฉพาะเจาะจงมากใน terminator เมื่อฉันพิมพ์อักขระ "§" ลงในหน้าต่างเทอร์มินัลแล้วกดแบ็คสเปซสองครั้งจะอนุญาตให้ฉันลบอักขระสองตัวออกแม้ว่าจะเป็นส่วนหนึ่งของสตริง PS1 ก็ตาม

ขั้นตอนในการทำซ้ำ:

  1. พิมพ์ "§" ลงในเทอร์มินัล
  2. ลบ 2 ตัวอักษร
  3. ทำซ้ำ

1
แอปเทอร์มินัลใด
sourcejedi

ฉันไม่สามารถทำซ้ำสิ่งนี้ใน terminator ด้วย zsh
Sparhawk

2
การตั้งค่าภาษาของคุณคืออะไร
choroba

1
ไม่stty -aแสดงiutf8? stty iutf8ถ้าไม่ลองหลังจาก อย่างน้อยควรครอบคลุมตัวแก้ไขบรรทัดภายในของอุปกรณ์ tty (เช่นเมื่อคุณเรียกใช้catและป้อนข้อความที่นั่น) เทอร์มินัล emultor ของคุณควรตั้งค่าiutf8สถานะเมื่อถูกเรียกในโลแคล UTF-8 หากไม่เป็นเช่นนั้นนั่นคือปัญหาที่เราควรตรวจสอบ
Stéphane Chazelas

คำตอบ:


4

เสียงเหมือนการตั้งค่า UTF-8 ที่ไม่ตรงกันระหว่างเทอร์มินัลของคุณกับแอปพลิเคชันของสถานที่

เครื่องหมายส่วนนั้นไม่ได้เป็นส่วนหนึ่งของชุดอักขระ ASCII ดังนั้นจึงแสดงเป็นสองไบต์ใน UTF-8 เทอร์มินัลของคุณอาจส่งเป็นเช่นนั้น แต่ด้านแอปพลิเคชันไม่ได้ตระหนักว่ามันควรจะแสดงถึงตัวละครเพียงตัวเดียวและพิมพ์เป็นตัวเดียว ตัวแก้ไขบรรทัดคำสั่งจะเก็บจำนวนอักขระที่คุณป้อนและเนื่องจากคิดว่าเครื่องหมายส่วนคืออักขระสองตัวจึงอนุญาตให้คุณถอยกลับได้หลายตัว เทอร์มินัลรู้ว่ามีเพียงเครื่องเดียวและแสดงและสลับพื้นที่เป็นหนึ่งเดียว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.