在 emacs 中,我通过使用 Cx Cf 访问它来创建一个文件。假设我想创建/home/myself/new_directory/file.txt
.
如果 new_directory 尚不存在,有没有办法在创建过程中创建它而file.txt
无需任何额外步骤?(我正在考虑在 Linux 中使用-p
标志之类的东西mkdir
。)
我觉得有一个不同的击键而不是 Cx Cf 可以做到这一点,但我不记得它是什么。
via*_*Zah 26
您还可以建议函数find-file
透明地创建必要的目录。
(defadvice find-file (before make-directory-maybe (filename &optional wildcards) activate)
"Create parent directory if not exists while visiting file."
(unless (file-exists-p filename)
(let ((dir (file-name-directory filename)))
(unless (file-exists-p dir)
(make-directory dir t)))))
Run Code Online (Sandbox Code Playgroud)
只需将它放在您的.emacs
某个地方并C-x C-f照常使用即可。
Chr*_*sen 18
当我提供一个不存在的组件的路径名时,find-file
(即Cx Cf),会给我一条额外的消息,说
使用 Mx make-directory RET RET 创建目录及其父目录
由于在您第一次保存缓冲区之前不会创建文件,因此您可以make-directory
在新缓冲区出现后立即运行,也可以在需要保存文件之前的任何其他时间执行此操作。然后从需要目录的缓冲区中,键入Mx make-directory RET RET(它会提示创建目录(默认值来自缓冲区的路径名);第二个 RET 是接受默认值)。