ทำไมเสียงเรียกเข้าล่าช้าเป็นวินาทีเมื่อใดก็ตามที่ฉันใช้คำสั่ง 'O' (เปิดบรรทัดใหม่ด้านบนและแทรก)


26

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

ฉันไม่มีปัญหาดังกล่าวกับoคำสั่ง (เปิดบรรทัดใหม่ด้านล่างและแทรก)

ถ้ามันสร้างความแตกต่างฉันใช้vimจากbashใน Gnome Terminal บน Ubuntu 10.04

คำตอบ:


27

หากกดปุ่มก่อนหน้านี้คือ ESC นี่คือเนื่องจากมีคีย์ที่สามารถสร้างลำดับการหลีกเลี่ยงที่เริ่มต้นด้วย ESC O ตัวอย่างเช่นขึ้นอยู่กับโหมดเคอร์เซอร์คีย์ลูกศรขึ้นอาจสร้างลำดับหลบหนี ESC O A

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

มีการตั้งค่าเป็นกลุ่มบางอย่างที่สามารถใช้เพื่อควบคุมสิ่งนี้ :set ttimeoutlen=100จะเปลี่ยนการหมดเวลาของ escape sequence เป็น 100ms :set noesckeysจะปิดการใช้งานการรับรู้คีย์ที่ส่งลำดับ escape อย่างสมบูรณ์เมื่ออยู่ในโหมดแทรก นอกจากนี้โหมดที่เข้ากันได้กับ vi จะไม่มีปัญหานี้เนื่องจาก esckey ปิดอยู่ในโหมดนั้น - นั่นคือสาเหตุที่ใช้vim -u NONEงานได้


เพียงเพื่อชี้แจงว่า "การทดลอง" ของฉันกับไฟล์บรรทัด 140k อยู่ในโหมดเต็มรูปแบบพร้อมกับส่วนเสริมมาตรฐานของปลั๊กอินและไฟล์ ฉันสามารถดูว่าคุณอาจสรุปได้ว่าฉันใช้ที่ไหน-u NONEแต่เรายังขาดการยืนยันจาก OP
msw

ว้าว! มันน่ารำคาญนิดหน่อย แต่ฉันไม่เคยคิดถึงมันเลย ทำให้รู้สึกที่สมบูรณ์แบบในขณะนี้ Esc OA ใช้งานได้เหมือนลูกศรขึ้นจริง ๆ
Vitaly Kushner

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