หากฉันวิงวอนvim foo/bar/somefile
แต่foo/bar
ไม่มีอยู่ Vim ก็ปฏิเสธที่จะบันทึก
ฉันรู้ว่าฉันสามารถเปลี่ยนเป็นเชลล์หรือทำ:!mkdir foo/bar
จาก Vim ได้ แต่ฉันขี้เกียจ :) มีวิธีทำให้ Vim ทำโดยอัตโนมัติเมื่อมันบันทึกบัฟเฟอร์หรือไม่?
write
และเรียกระบบไปmkdir -p
ที่dirname
อย่างอื่นแมปกับW
... ฉันขี้เกียจค้นหาไวยากรณ์และโพสต์เป็นคำตอบ ... ขออภัย
:w
เพื่อmkdir -p %:h
ตามด้วยการสร้าง:write
mkdir -p %:h
จะดีกว่าเนื่องจากใช้งานได้กับพา ธ ที่ไม่มีอยู่ที่ซ้อนกันไม่เพิ่มข้อผิดพลาดเมื่อมีพา ธ อยู่แล้วและ%:h
เป็นพา ธ แบบเต็มของไฟล์ปัจจุบัน อย่างไรก็ตามฉันไม่รู้วิธีเรียกสิ่งนี้โดยอัตโนมัติ โดยปกติสิ่งนี้จะทำด้วยคำสั่งอัตโนมัติ แต่BufWritePre
เหตุการณ์ดูเหมือนจะไม่ทำงานที่นี่