สิ่งที่ฉันสังเกตเห็นใน Ubuntu เป็นเวลานานที่ทำให้ฉันหงุดหงิดคือเมื่อฉันพิมพ์คำสั่งที่บรรทัดคำสั่งที่ยาวขึ้น (กว้างกว่า) มากกว่าความกว้างของเทอร์มินัลแทนที่จะไปที่บรรทัดใหม่มันจะย้อนกลับไปที่ คอลัมน์ 1 ในบรรทัดเดียวกันและเริ่มเขียนทับจุดเริ่มต้นของบรรทัดคำสั่งของฉัน (มันไม่ได้เขียนทับคำสั่งจริง แต่จริงๆแล้วมันเป็นการเขียนทับข้อความที่แสดง)
มันยากที่จะอธิบายโดยไม่เห็นมัน แต่สมมุติว่าเทอร์มินัลของฉันกว้าง 20 ตัวอักษร (ของฉันมีความยาวมากกว่า 120 ตัวอักษร - แต่เพื่อเป็นตัวอย่าง) และฉันต้องการสะท้อนตัวอักษรภาษาอังกฤษ สิ่งที่ฉันพิมพ์คือ:
echo abcdefghijklmnopqrstuvwxyz
แต่หน้าตาเทอร์มินัลของฉันก่อนที่ฉันจะกดปุ่มคือ:
pqrstuvwxyzghijklmno
เมื่อฉันกด Enter มันสะท้อน
abcdefghijklmnopqrstuvwxyz
ดังนั้นฉันรู้ว่าได้รับคำสั่งอย่างถูกต้อง มันเพิ่งพิมพ์ข้อความของฉันหลังจาก "o" และเริ่มต้นใหม่ในบรรทัดเดียวกัน
สิ่งที่ฉันคาดว่าจะเกิดขึ้นถ้าฉันพิมพ์คำสั่งนี้ในเทอร์มินัลที่มีความกว้างเพียง 20 ตัวอักษรจะเป็นดังนี้:
echo abcdefghijklmno
pqrstuvwxyz
พื้นหลัง: ฉันใช้ทุบตีเป็นเปลือกของฉันและฉันมีบรรทัดนี้ใน ~ / .bashrc ของฉัน:
set -o vi
เพื่อให้สามารถนำทางบรรทัดคำสั่งด้วยคำสั่ง VI ฉันกำลังใช้เซิร์ฟเวอร์ Ubuntu 10.10 และกำลังเชื่อมต่อกับเซิร์ฟเวอร์ด้วย Putty
ในสภาพแวดล้อมอื่น ๆ ที่ฉันได้ทำงานถ้าฉันพิมพ์บรรทัดคำสั่งยาวมันจะเพิ่มบรรทัดใหม่ภายใต้บรรทัดที่ฉันกำลังทำงานเมื่อคำสั่งของฉันยาวกว่าความกว้างของเทอร์มินัลและเมื่อฉันพิมพ์ฉันจะเห็นคำสั่งของฉัน 2 สายที่แตกต่างกัน แต่ตราบใดที่ฉันจำอูบุนตูได้คำสั่งยาว ๆ ของฉันใช้แค่ 1 บรรทัดเท่านั้น
สิ่งนี้ยังเกิดขึ้นเมื่อฉันกลับไปที่คำสั่งก่อนหน้าในประวัติศาสตร์ (ฉันกด Esc แล้ว 'K' เพื่อกลับไปยังคำสั่งก่อนหน้า) - เมื่อฉันไปที่คำสั่งก่อนหน้าซึ่งยาวกว่าความกว้างเทอร์มินัลบรรทัดคำสั่งจะได้รับ mangled และฉันไม่สามารถบอกได้ว่าฉันอยู่ที่ไหนในคำสั่ง
สิ่งเดียวที่ฉันได้พบเมื่อเห็นคำสั่งยาวทั้งหมดคือกด "Esc-V" ซึ่งเปิดคำสั่งปัจจุบันในเครื่องมือแก้ไข VI
ฉันไม่คิดว่าฉันมีอะไรแปลกในไฟล์. bashrc ของฉัน ฉันแสดงความคิดเห็นในบรรทัด "set -o vi" และฉันยังคงมีปัญหา
ฉันดาวน์โหลดสำเนาใหม่ของ Putty และไม่ได้ทำการเปลี่ยนแปลงใด ๆ กับการกำหนดค่า - ฉันเพิ่งพิมพ์ชื่อโฮสต์เพื่อเชื่อมต่อและฉันยังคงมีปัญหาดังนั้นฉันจึงไม่คิดว่ามันจะเป็นเรื่องของ Putty (เว้นแต่ฉันต้องการ ทำการเปลี่ยนแปลงการกำหนดค่าบางอย่าง)
มีใครมีปัญหานี้และใครจะคิดวิธีการแก้ไขได้หรือไม่
แก้ไข
มันเป็นไฟล์. bashrc ของฉัน ฉันได้คัดลอกโปรไฟล์เดียวกันจากเครื่องไปยังเครื่องและฉันใช้ตัวละครพิเศษใน $ PS1 ของฉันที่ทิ้งมันไป ตอนนี้ฉันติดกับตัวแปร bash มาตรฐานสำหรับ $ PS1 ของฉัน
ขอบคุณ @ ændrükสำหรับเคล็ดลับใน. bashrc!
... สิ้นสุดการแก้ไข ...
tput smam
/etc/skel/.bashrc
ชั่วคราว โปรดทราบว่าคุณจะต้องเชื่อมต่อใหม่เพื่อให้การเปลี่ยนแปลงมีผลและให้แน่ใจว่าได้สำรองข้อมูลของ. bashrc ของคุณเอง