:q!
ฉันไม่สามารถออกจากกลุ่มแม้เมื่อฉันพิมพ์ ฉันได้รับข้อผิดพลาด
E37: No write since last change (add ! to override)
E162: No write since last change for buffer...
ฉันคิดว่าบัฟเฟอร์เป็น NetrwTreeListing แบบอ่านอย่างเดียว
:q!
ฉันไม่สามารถออกจากกลุ่มแม้เมื่อฉันพิมพ์ ฉันได้รับข้อผิดพลาด
E37: No write since last change (add ! to override)
E162: No write since last change for buffer...
ฉันคิดว่าบัฟเฟอร์เป็น NetrwTreeListing แบบอ่านอย่างเดียว
คำตอบ:
เพื่อแก้ปัญหานี้ด้วย 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
สิ่งนี้มักจะเกิดขึ้นถ้ามีบัฟเฟอร์สองตัวหรือมากกว่าที่ถูกแก้ไขและ Vim จะสลับระหว่างกันและแสดงข้อความแสดงข้อผิดพลาด ดังนั้นเมื่อ:q!
จะยกเลิกบัฟเฟอร์ปัจจุบันจะไม่ยกเลิกบัฟเฟอร์ที่แก้ไขอื่น ๆ ดังนั้น Vim จึงปกป้องคุณจากการสูญเสียการเปลี่ยนแปลงและให้ข้อความแสดงข้อผิดพลาดนี้
หากคุณแน่ใจอย่างแน่นอนคุณต้องการยกเลิกการปรับเปลี่ยนทั้งหมดสำหรับบัฟเฟอร์ที่โหลดทั้งหมดจากนั้นก็ใช้:qa!
ลอง
:bdelete!
หรือ
:bd!
สั้น ๆ. ย่อมาจาก "buffer delete" และจะปิดบัฟเฟอร์ที่คุณเปิด (เครดิตไปที่Emil Asmussen )
หลังจากนั้นคุณควรทำ:q!
ตามปกติ