ไม่สามารถออกจากกลุ่มแม้จะใช้ q!


14

:q!ฉันไม่สามารถออกจากกลุ่มแม้เมื่อฉันพิมพ์ ฉันได้รับข้อผิดพลาด

E37: No write since last change (add ! to override)
E162: No write since last change for buffer...

ฉันคิดว่าบัฟเฟอร์เป็น NetrwTreeListing แบบอ่านอย่างเดียว

คำตอบ:


11

เพื่อแก้ปัญหานี้ด้วย netrw อย่างถาวรฉันได้เพิ่มสิ่งนี้ใน.vimrc:

" Per default, netrw leaves unmodified buffers open. This autocommand
" deletes netrw's buffer once it's hidden (using ':q', for example)
autocmd FileType netrw setl bufhidden=delete

จากทิมสมเด็จพระสันตะปาปา


6

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

หากคุณแน่ใจอย่างแน่นอนคุณต้องการยกเลิกการปรับเปลี่ยนทั้งหมดสำหรับบัฟเฟอร์ที่โหลดทั้งหมดจากนั้นก็ใช้:qa!


5

ลอง

:bdelete!

หรือ

:bd!

สั้น ๆ. ย่อมาจาก "buffer delete" และจะปิดบัฟเฟอร์ที่คุณเปิด (เครดิตไปที่Emil Asmussen )

หลังจากนั้นคุณควรทำ:q!ตามปกติ


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