如何让Emacs创建中间dirs - 保存文件?

时间:2011-07-26 13:23:51

标签: emacs

有没有办法在emacs中创建文件夹树 - 类似于

mkdir -p

在bash?

基本上 - 当我保存文件时,我希望emacs创建所有中间目录 - 如果它们不存在 -

3 个答案:

答案 0 :(得分:27)

函数make-directory就是这样做的。您的特定问题可能会像这样解决:

(add-hook 'before-save-hook
          (lambda ()
            (when buffer-file-name
              (let ((dir (file-name-directory buffer-file-name)))
                (when (and (not (file-exists-p dir))
                           (y-or-n-p (format "Directory %s does not exist. Create it?" dir)))
                  (make-directory dir t))))))

答案 1 :(得分:3)

您也可以使用mkdir -p从emacs内部执行M-!以获取shell命令提示符。

然后你要做的就是把你的目录结构放在:

M-! dir1/dir2/dir3/dir4.....

答案 2 :(得分:2)

(make-directory DIR& optional PARENTS)

创建目录DIR和任何不存在的父目录。 如果DIR已作为目录存在,则发出错误信号,除非设置了PARENTS。