ความเร็วของการชนบน <Esc> O (แทรกเป็นปกติเพื่อแทรกบรรทัดใหม่เหนือเคอร์เซอร์)


16

บ่อยครั้งที่ฉันอยู่ในโหมดแทรกฉันจะกดEscเพื่อเข้าสู่โหมดปกติจากนั้นกดปุ่มOเพื่อเริ่มบรรทัดใหม่เหนือเคอร์เซอร์และเข้าสู่โหมดแทรกที่นั่น

แต่เมื่อฉันทำเช่นนั้นมีความล่าช้า 1 วินาทีหลังจากที่ฉันกดปุ่มOก่อนที่จะมีการตอบสนองใด ๆ ที่มองเห็นได้ นอกจากนี้ถ้าผมเริ่มพิมพ์ข้อความใหม่ในช่วงที่ล่าช้า 1 วินาที, หากข้อความใหม่ที่เริ่มต้นด้วยการใด ๆ ของบางชุดของตัวละคร (เช่นj, k, m, n, o) ผมจบลงในช่วงกลางของการดำเนินการบางอย่างอื่น ๆ ที่ผมทำไม่ได้ ตั้งใจมักจะทำเลอะเทอะ ณ จุดที่ฉันต้องหยุดและคลำหารอบด้วยการเลิกทำและทำซ้ำจนกว่าฉันจะแน่ใจว่าฉันได้ยกเลิกความเสียหายแล้ว

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

อะไรทำให้เกิดสิ่งนี้ มีวิธีแก้ไขหรือวิธีแก้ปัญหาหรือไม่?

คำตอบ:


15

สิ่งนี้เกิดขึ้นเฉพาะในเครื่องเทอร์มินัล แต่ไม่ใช่ใน GVIM ใช่ไหม เหตุผลก็คือว่าเป็นกลุ่มไม่สามารถแยกแยะความแตกต่างระหว่างปุ่มแต่ละประเภทและลำดับหนี ANSI เริ่มต้นด้วยคีย์เดียวกัน (เช่น^[O..., <Esc>ตามด้วยOในกรณีของคุณ)

คุณสามารถอ่านเกี่ยวกับความซับซ้อนพื้นฐานทั้งหมดได้ที่:help 'timeout'(และตัวเลือกต่อไปนี้) ที่นั่นคุณจะพบการกำหนดค่าที่แนะนำที่ช่วยลดปัญหา:

:set timeout timeoutlen=1000 ttimeoutlen=100

3
คุณยังสามารถใช้set noesckeys; สิ่งนี้มีผลข้างเคียงของการปิดใช้งานปุ่มลูกศร (และอาจเป็นปุ่มอื่น ๆ ?) ในโหมดแทรกแม้ว่ามันอาจไม่เหมาะสำหรับทุกคน
Martin Tournoij

2
@Carpetsmoker เกี่ยวกับ "set noesckeys" ... ที่ใช้งานได้ แต่เฉพาะในโหมดแทรก ฉันรู้ว่าฉันบอกว่าฉันอยู่ในโหมดแทรกเพื่อเริ่มต้นด้วย; แต่ฉันก็มักจะ <Esc> O ที่เริ่มต้นจากโหมดปกติ (ส่วนใหญ่เมื่อฉันไม่แน่ใจ 100% ว่าฉันเริ่มในโหมดแทรกหรือโหมดปกติ) ดังนั้นฉันจึงชอบบางสิ่งที่ใช้งานได้ในกรณีนี้เช่นกัน
Don Hatch

1
@DonHatch คุณสามารถใช้:nnoremap ^[O Oที่^[ถูกป้อนโดยการกด<C-v><Esc>(นอกจากนี้ยังอาจแสดงเป็น<1b>)
Martin Tournoij

5

เป็นวิธีแก้ปัญหาแทนการ ESCOใช้+Control + ทำให้คุณอยู่ในโหมดปกติสำหรับคำสั่งหนึ่งแล้วคุณกลับไปยังโหมดแทรกเมื่อมีการกระทำOOControlO


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