เมื่อใช้ vi คุณสามารถออกจากโหมดที่มีแทรกCtrl+ แทนแบบดั้งเดิมมากขึ้นC Escมีสถานการณ์ใดบ้างที่ไม่พึงปรารถนาที่จะใช้สำหรับอดีตแทนสถานการณ์หลัง? มันทำลายสิ่งอื่นใดนอกจากแนวปฏิบัติที่ดีที่สุดหรือไม่?
เมื่อใช้ vi คุณสามารถออกจากโหมดที่มีแทรกCtrl+ แทนแบบดั้งเดิมมากขึ้นC Escมีสถานการณ์ใดบ้างที่ไม่พึงปรารถนาที่จะใช้สำหรับอดีตแทนสถานการณ์หลัง? มันทำลายสิ่งอื่นใดนอกจากแนวปฏิบัติที่ดีที่สุดหรือไม่?
คำตอบ:
Ctrl-CและEscไม่เหมือนกันในvi
/ vim
ในโหมดส่วนใหญ่รวมถึงโหมดแทรก ความแตกต่างคือEscต้นเหตุของการย่อในขณะที่Ctrl-cไม่ เรื่องนี้ขึ้นอยู่กับคุณว่าคุณหรือปลั๊กอินใด ๆ ที่คุณใช้ใช้ประโยชน์จากตัวย่อ
หมายเหตุว่ามันจะปลอดภัยกว่าที่จะคิดEscและCtrl-Cทำไม่ได้vim
หมายถึงสิ่งเดียวกันใน อีกตัวอย่างจากไซต์เดียวกันนี้คือเมื่อออกจากโหมดแทรกบล็อก (ไม่ใช่ในvi
)
ฉันคิดว่าคุณหมายถึงไม่ได้vim
vi
มันใช้งานได้จริง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
ทำให้คุณกลับไปสู่โหมดแทรกได้ทันที