有没有办法在Emacs中创建文件夹树 - 类似于
mkdir -p
在Bash中,我希望Emacs在保存文件时,如果所在目录不存在,则自动创建所有必要的中间目录。
有没有办法在Emacs中创建文件夹树 - 类似于
mkdir -p
在Bash中,我希望Emacs在保存文件时,如果所在目录不存在,则自动创建所有必要的中间目录。
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))))))
(make-directory dir t)
替换为(when (y-or-n-p (format "是否创建目录?:%s " dir)) (make-directory dir t))
。 - philsbasic-save-buffer
在运行挂钩之前就发出错误信号。不确定如何正确处理这种情况。我建议使用函数 write-file
(默认绑定到 C-x C-w
)来保存这样的缓冲区 - 一切都会正常工作。 - Victor DeryaginM-!
执行mkdir -p
来获取一个shell命令提示符,然后您只需将目录结构放入其中:M-! dir1/dir2/dir3/dir4.....
。M-!
,然后我的 minibuffer 提示我输入 Shell command:
,但是我的命令都无法被接受。例如,输入 pwd
或 ls
,我会收到类似于 pwd 不是内部或外部命令,也不是可运行的程序或批处理文件。
的消息。你能详细解释一下吗?(我对 Emacs 有点新手) - modulitos(make-directory DIR &optional PARENTS)
创建目录DIR和任何不存在的父目录。 如果DIR作为目录已经存在,则会发出错误信号,除非设置了PARENTS参数。
M-x make-directory
,然后输入要创建的目录完整路径并按Enter键即可。 - Fredrik Pihl