ฉันจะเลิกจาก Vi ได้อย่างไร


81

ฉันเริ่มต้น Vi บนเครื่อง Ubuntu ของฉัน อย่างไรก็ตามฉันใหม่กับ Vi และตอนนี้ฉันไม่สามารถเลิกได้ ฉันเห็นตัวแก้ไขและฉันสามารถเขียนข้อความได้ที่บรรทัดล่างสุดมีป้ายกำกับ "การบันทึก"

ฉันจะออกจาก Vi ได้อย่างไร


1
"การบันทึก" โดยที่หมายความว่าคุณกำลังบันทึกแมโคร ไม่ว่าจะมีความสำคัญอีกต่อไป
frabjous

4
คำถามนี้นำความทรงจำ "สนุก" กลับมา ฉันดีใจที่ฉันได้รับความรู้สึกนั้น
frabjous

เราจะกลับมาใช้โหมดแทรกจากโหมดอ่านอย่างเดียวใน Linux (ติดตั้ง Ubuntu ใน VMware) VI Editor ได้อย่างไร

2
การออก Vim ได้กลายเป็น meme แล้ว
noɥʇʎԀʎzɐɹƆ

2
สำหรับผู้ที่ยังไม่เคยเห็นเรื่องตลกเลย: twitter.com/iamdevloper/statuses/435555976687923200
Federico Poloni

คำตอบ:


91

เป็นกลุ่มเป็นบรรณาธิการกิริยา กดESCกุญแจสำคัญที่จะได้รับเป็นปกติ (คำสั่ง) โหมดแล้วพิมพ์และกด:qEnter

ที่จะลาออกโดยไม่ต้องบันทึกการเปลี่ยนแปลงใด ๆ ประเภทและกด:q!Enter

ดูเพิ่มเติมการออกในเอกสารที่เป็นกลุ่ม


9
ขอบคุณ: ฉันลองใช้คำสั่งนั้น แต่หลังจากใช้งานไปฉันได้รับแจ้งว่า: E37: No write since last change (add ! to override). ฉันไม่มีอะไรจะบันทึก
Jonas

12
ใช้:wqหากคุณต้องการบันทึกสิ่งที่คุณแก้ไขแล้วออก :q!หากคุณต้องการออกและทิ้งการเปลี่ยนแปลงไว้
Steven D

หรือถ้าคุณเขียนสิ่งที่คุณต้องการที่จะทำสำเนาที่:w newFileName.txtแล้วเรียงลำดับจากปัญหาอ่านอย่างเดียวนอกviหรือเป็นกลุ่ม
Kevin Cantu

5
ออกจาก:q; บังคับให้เลิก:q!; เลิกและบันทึก:wqหรือ:x
fromnaboo

2
@ Jonas ลองครั้งต่อไป:qall!ฉันสงสัยว่าคุณได้เปิดไฟล์เพิ่มเติมภายในบัฟเฟอร์เดียว
Alan Dong

11

ผมใช้ctrl+ [เพื่อสร้างescลำดับนี้ทำให้ฉันจากที่มีการย้ายมือของฉันจากแถวบ้าน (จำescที่สำคัญคือในสถานที่ที่แตกต่างกันเมื่อviถูกคิดค้น. :wqจะเขียนไฟล์ทั้งหมด regardeless ความจำเป็น. ฉันขอแนะนำให้ใช้ZZ(ซึ่งshift+ zสองครั้ง ) ซึ่งจะเขียนก็ต่อเมื่อมีการเปลี่ยนแปลงในไฟล์นอกจากนี้ยัง:xaเป็นเช่นเดียวกันZZถ้าคุณเปิดไฟล์มากกว่า 1 ไฟล์ในอินสแตนซ์ของตัวแก้ไข (เช่นแท็บ vim) หมายเหตุ: ฉันไม่แน่ใจว่าทั้งหมดนี้เป็น เข้ากันได้ 100% กับทุก vi โคลน แต่ฉันรู้ว่ามันใช้งานได้กับเสียงเรียกเข้า


1
ขอบคุณ ZZคำสั่งน่าจะเป็นประโยชน์ ฉันสามารถเห็นประเด็นด้วยCtrl+[แต่ฉันใช้รูปแบบแป้นพิมพ์สวีเดนและฉันต้องกดAltGr+8เพื่อ[ให้ได้Ctrl+AltGr+8สำหรับฉัน :(
Jonas

นอกจากนี้ยังทราบได้อย่างมีประสิทธิภาพเช่นเดียวกับZQ :q!อย่างไรก็ตามนี่ไม่ใช่มาตรฐาน ZZบนมืออื่น ๆ ที่มีการ ระบุไว้ใน POSIX
Wildcard

4

เลิกจาก vi Esc :xเป็นอีกวิธีหนึ่งคือ

ตัวเลือกนี้ใช้สำหรับการบันทึกและออกในเวลาเดียวกัน


2
โปรดทราบว่าเช่นZZ, จะเขียนไฟล์เฉพาะถ้าเนื้อหามีการเปลี่ยนแปลงซึ่งแตกต่างจาก:x :wq
jlliagre

2

ดังที่ Sinan กล่าวว่าเสียงเรียกเข้าเป็นตัวแก้ไขโมดัล หากคุณต้องการที่จะรู้ว่าสิ่งที่เหมาะกับคุณหรือไม่คุณควรลงทุนสักครู่และเรียกใช้vimtutorซึ่งเป็นวิธีแบบโต้ตอบเพื่อเรียนรู้กลุ่ม (นอกจากนี้ยังครอบคลุมถึงวิธีการออกสิ่งที่หมายถึงโหมดและสิ่งที่คุณสามารถทำได้ในแต่ละโหมด)


-2

หลังจากการปรับเปลี่ยนโปรดกดและคำสั่งที่ได้รับESC:wq!

การดำเนินการนี้จะเขียนการปรับเปลี่ยนใหม่ในไฟล์อ่านอย่างเดียว ก่อนหน้านี้มันไม่ทำงานเพราะไฟล์เป็นแบบอ่านอย่างเดียว


1
ทำไมคุณตอบคำถามเมื่อ 4 ปีที่แล้วโดยมีการตอบคำถามใหม่ ๆ มันผิดอยู่ดี: สิ่งนี้จะไม่บังคับให้เขียนไฟล์แบบอ่านอย่างเดียว - มันจะพยายามเขียน, อาจล้มเหลวแล้วจะบังคับให้ออกโดยไม่บันทึก
คริส

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

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