ฉันเริ่มต้น Vi บนเครื่อง Ubuntu ของฉัน อย่างไรก็ตามฉันใหม่กับ Vi และตอนนี้ฉันไม่สามารถเลิกได้ ฉันเห็นตัวแก้ไขและฉันสามารถเขียนข้อความได้ที่บรรทัดล่างสุดมีป้ายกำกับ "การบันทึก"
ฉันจะออกจาก Vi ได้อย่างไร
ฉันเริ่มต้น Vi บนเครื่อง Ubuntu ของฉัน อย่างไรก็ตามฉันใหม่กับ Vi และตอนนี้ฉันไม่สามารถเลิกได้ ฉันเห็นตัวแก้ไขและฉันสามารถเขียนข้อความได้ที่บรรทัดล่างสุดมีป้ายกำกับ "การบันทึก"
ฉันจะออกจาก Vi ได้อย่างไร
คำตอบ:
เป็นกลุ่มเป็นบรรณาธิการกิริยา กดESCกุญแจสำคัญที่จะได้รับเป็นปกติ (คำสั่ง) โหมดแล้วพิมพ์และกด:qEnter
ที่จะลาออกโดยไม่ต้องบันทึกการเปลี่ยนแปลงใด ๆ ประเภทและกด:q!Enter
ดูเพิ่มเติมการออกในเอกสารที่เป็นกลุ่ม
E37: No write since last change (add ! to override)
. ฉันไม่มีอะไรจะบันทึก
:wq
หากคุณต้องการบันทึกสิ่งที่คุณแก้ไขแล้วออก :q!
หากคุณต้องการออกและทิ้งการเปลี่ยนแปลงไว้
:w newFileName.txt
แล้วเรียงลำดับจากปัญหาอ่านอย่างเดียวนอกviหรือเป็นกลุ่ม
:q
; บังคับให้เลิก:q!
; เลิกและบันทึก:wq
หรือ:x
:qall!
ฉันสงสัยว่าคุณได้เปิดไฟล์เพิ่มเติมภายในบัฟเฟอร์เดียว
ผมใช้ctrl+ [เพื่อสร้างescลำดับนี้ทำให้ฉันจากที่มีการย้ายมือของฉันจากแถวบ้าน (จำescที่สำคัญคือในสถานที่ที่แตกต่างกันเมื่อvi
ถูกคิดค้น. :wq
จะเขียนไฟล์ทั้งหมด regardeless ความจำเป็น. ฉันขอแนะนำให้ใช้ZZ
(ซึ่งshift+ zสองครั้ง ) ซึ่งจะเขียนก็ต่อเมื่อมีการเปลี่ยนแปลงในไฟล์นอกจากนี้ยัง:xa
เป็นเช่นเดียวกันZZ
ถ้าคุณเปิดไฟล์มากกว่า 1 ไฟล์ในอินสแตนซ์ของตัวแก้ไข (เช่นแท็บ vim) หมายเหตุ: ฉันไม่แน่ใจว่าทั้งหมดนี้เป็น เข้ากันได้ 100% กับทุก vi โคลน แต่ฉันรู้ว่ามันใช้งานได้กับเสียงเรียกเข้า
ZZ
คำสั่งน่าจะเป็นประโยชน์ ฉันสามารถเห็นประเด็นด้วยCtrl+[
แต่ฉันใช้รูปแบบแป้นพิมพ์สวีเดนและฉันต้องกดAltGr+8
เพื่อ[
ให้ได้Ctrl+AltGr+8
สำหรับฉัน :(
เลิกจาก vi Esc :xเป็นอีกวิธีหนึ่งคือ
ตัวเลือกนี้ใช้สำหรับการบันทึกและออกในเวลาเดียวกัน
ZZ
, จะเขียนไฟล์เฉพาะถ้าเนื้อหามีการเปลี่ยนแปลงซึ่งแตกต่างจาก:x
:wq
ดังที่ Sinan กล่าวว่าเสียงเรียกเข้าเป็นตัวแก้ไขโมดัล หากคุณต้องการที่จะรู้ว่าสิ่งที่เหมาะกับคุณหรือไม่คุณควรลงทุนสักครู่และเรียกใช้vimtutor
ซึ่งเป็นวิธีแบบโต้ตอบเพื่อเรียนรู้กลุ่ม (นอกจากนี้ยังครอบคลุมถึงวิธีการออกสิ่งที่หมายถึงโหมดและสิ่งที่คุณสามารถทำได้ในแต่ละโหมด)
หลังจากการปรับเปลี่ยนโปรดกดและคำสั่งที่ได้รับESC:wq!
การดำเนินการนี้จะเขียนการปรับเปลี่ยนใหม่ในไฟล์อ่านอย่างเดียว ก่อนหน้านี้มันไม่ทำงานเพราะไฟล์เป็นแบบอ่านอย่างเดียว