เมื่อเปิดไฟล์ใหม่ที่มีไดเรกทอรีหลักยังไม่มีฉันเปิดหน้าต่างเชลล์หรือบัฟเฟอร์เชลล์ Emacs แล้วmkdir
ไดเรกทอรีในนั้น ฉันพบว่ามันยุ่งยาก มีวิธีที่ง่ายกว่านี้ไหม?
เมื่อเปิดไฟล์ใหม่ที่มีไดเรกทอรีหลักยังไม่มีฉันเปิดหน้าต่างเชลล์หรือบัฟเฟอร์เชลล์ Emacs แล้วmkdir
ไดเรกทอรีในนั้น ฉันพบว่ามันยุ่งยาก มีวิธีที่ง่ายกว่านี้ไหม?
คำตอบ:
คุณไม่จำเป็นต้องทำอย่างนั้นถ้าเป็นคำถามของคุณ
C-x C-f /some/new/directory/newfile.txt
Emacs พิมพ์ข้อความแจ้งให้คุณทราบว่าไดเรกทอรีที่ยังไม่มี:/some/new/directory/
Use M-x make-directory RET RET to create the directory and its parents
newfile.txt
แทรกข้อความลงในบัฟเฟอร์ใหม่สำหรับไฟล์ใหม่
C-x C-s
เพื่อบันทึกไฟล์
Emacs ถามคุณว่าคุณต้องการสร้างไดเรกทอรีระดับกลางที่ขาดหายไปหรือไม่ (เช่นnew/directory/
คุณกดปุ่มy
"ใช่"
ไม่ยุ่งยากมาก IMO UI ต้องขอคำยืนยันจากคุณเนื่องจากคุณอาจพิมพ์ชื่อไดเรกทอรีที่มีอยู่ผิด ๆ ได้อย่างง่ายดาย
y
กับ
ido
ผู้ใช้ido-find-file
) และป้อนเส้นทางที่ไม่มีอยู่จริงm
ake dir ใหม่?) REThitเมื่ออยู่ในสถานการณ์นี้ emacs ควรจะบอกสิ่งที่คุณต้องการ:
use M-x make-directory RET RET to create the directory and its parents
มันยุ่งยากไหม?
ฉันจะบอกว่าใช่มันเป็น
หากคุณต้องการfind-file
สร้างไดเรกทอรีหลักโดยอัตโนมัติเมื่อไม่มีอยู่คุณสามารถทำสิ่งต่อไปนี้ในไฟล์ init ของคุณ
(defun my-find-file (orig-fun &rest args)
(let* ((filename (car args))
(directory (file-name-directory filename)))
(if (not (file-directory-p directory))
(make-directory directory t))
(apply orig-fun args)))
(advice-add 'find-file :around 'my-find-file)
ท้ายที่สุด Emacs ได้รับการออกแบบให้สามารถขยายและปรับแต่งได้
อ้างอิง:
M-x make-dir
tab
(ทดสอบจากemacs -Q
เพื่อให้แน่ใจว่าใช้งานได้)RET
RET
และมันจะสร้างไดเรกทอรีโดยไม่ต้องมีการแจ้งเตือนใด ๆ เพิ่มเติม