เมื่อใช้ vi คุณสามารถออกจากโหมดที่มีแทรกCtrl+ แทนแบบดั้งเดิมมากขึ้นC Escมีสถานการณ์ใดบ้างที่ไม่พึงปรารถนาที่จะใช้สำหรับอดีตแทนสถานการณ์หลัง? มันทำลายสิ่งอื่นใดนอกจากแนวปฏิบัติที่ดีที่สุดหรือไม่?
เมื่อใช้ vi คุณสามารถออกจากโหมดที่มีแทรกCtrl+ แทนแบบดั้งเดิมมากขึ้นC Escมีสถานการณ์ใดบ้างที่ไม่พึงปรารถนาที่จะใช้สำหรับอดีตแทนสถานการณ์หลัง? มันทำลายสิ่งอื่นใดนอกจากแนวปฏิบัติที่ดีที่สุดหรือไม่?
คำตอบ:
Ctrl-CและEscไม่เหมือนกันในvi/ vimในโหมดส่วนใหญ่รวมถึงโหมดแทรก ความแตกต่างคือEscต้นเหตุของการย่อในขณะที่Ctrl-cไม่ เรื่องนี้ขึ้นอยู่กับคุณว่าคุณหรือปลั๊กอินใด ๆ ที่คุณใช้ใช้ประโยชน์จากตัวย่อ
หมายเหตุว่ามันจะปลอดภัยกว่าที่จะคิดEscและCtrl-Cทำไม่ได้vimหมายถึงสิ่งเดียวกันใน อีกตัวอย่างจากไซต์เดียวกันนี้คือเมื่อออกจากโหมดแทรกบล็อก (ไม่ใช่ในvi)
ฉันคิดว่าคุณหมายถึงไม่ได้vimvi
มันใช้งานได้จริงvimแม้ว่าฉันจะไม่ใช้มันเว้นแต่ฉันจะแน่ใจ 100% ว่าฉันจะไม่แตะต้องระบบปฏิบัติการที่ไม่ใช่ Linux เลย เหตุผลก็คือระบบปฏิบัติการอื่นอาจมีการใช้งานของตัวเองviซึ่งไม่ได้ใช้สิ่งนี้และคุณอาจพบว่าเมื่อทำงานviบนแพลตฟอร์มเหล่านั้น Ctrl-C มีพฤติกรรมแบบดั้งเดิมของตัวเอง: ขัดจังหวะกระบวนการและทำให้เครื่องอยู่ในสถานะแปลก .
viการดำเนินงานที่ยังคงมีอยู่ในวันนี้ว่าไม่ได้จัดการCtrl-C? ดูคำตอบของฉันสำหรับความแตกต่างที่แท้จริง
หากคุณอ้างถึงvimมีความแตกต่างเล็กน้อย CTRL-Cไม่ตรวจสอบตัวย่อและจะไม่ทำให้เกิดInsertLeaveเหตุการณ์ ดังนั้นคุณหรือปลั๊กอินจึงได้กำหนดautocmdคำสั่งใด ๆที่ขึ้นอยู่กับInsertLeaveพวกเขาจะไม่ถูกเรียก
จากเอกสารอย่างเป็นทางการhttp://vimhelp.appspot.com/insert.txt.html :
<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode. Finish
abbreviation.
CTRL-C Quit insert mode, go back to Normal mode. Do not check for
abbreviations. Does not trigger the InsertLeave autocommand
event.
คุณสามารถกำหนดทำแผนที่สำหรับCTRL-Cไปแล้วมันจะเรียก<esc>InsertLeave
Type :quit<Enter> to exit Vimและทำให้ฉัน Google เป็นวิธีการกลับมา การกดปุ่มiทำให้คุณกลับไปสู่โหมดแทรกได้ทันที