如何从 Emacs 中创建目录?

Posted

技术标签:

【中文标题】如何从 Emacs 中创建目录?【英文标题】:How do I create a directory from within Emacs? 【发布时间】:2010-09-14 09:44:54 【问题描述】:

如何使用 Emacs 创建一个新目录?我使用什么命令? (如果可能,请举个例子)

【问题讨论】:

【参考方案1】:

要创建目录dir/to/create,请输入:

M-x make-directory RET dir/to/create RET

要创建目录dir/parent1/nodedir/parent2/node,请键入:

M-! mkdir -p dir/parent1,2/node RET

假定 Emacs 的劣质 shell 是 bash/zsh 或其他兼容的 shell。

或在Dired 模式下

+

它不会创建不存在的父目录。

例子:

C-x d *.py RET ; shows python source files in the CWD in `Dired` mode
+ test RET     ; create `test` directory in the CWD

CWD 代表当前工作目录。

或者只是使用C-x C-f 使用不存在的父目录创建一个新文件并输入:

M-x make-directory RET RET

Emacs 要求在最近的 Emacs 版本中保存新文件时自动创建父目录。旧版本见How to make Emacs create intermediate dirs - when saving a file?

【讨论】:

嗨 J.F. Sebastian,当我在 shell 中创建目录时,如何更新目录窗口? @why:输入g。一般M-x describe-mode RET (C-h m) 显示当前主要模式的文档。 非常感谢!但你的意思是我输入 M-x g 或 C-x g ? @为什么他的意思是单个g。由于dired-mode不是一种编辑模式,它直接使用单字母命令(好奇的:g在大多数编辑模式下都绑定到self-insert-command)。 C-x d *.py RET 应该显示 python 文件?它说:“阅读目录:没有这样的文件或目录,/some/path/*.py”。【参考方案2】:

Ctrl+X D (C-x d) 以“dired”模式打开目录,然后 + kbd> 创建一个目录。

【讨论】:

我假设“+”位于新文件路径目录的末尾? 当我执行 C-x C-f 并输入“+ dirname”时,emacs 创建了一个文件“+ dirname”,它不会创建一个目录“dirname”。我正在使用 OSX,我不知道这是否是问题,因为在 Linux 中这有效。 @Zeynel:你没有在阅读。这里没有C-x C-f。您使用 C-x d 进入 Dired 模式,访问要在其中创建子目录的目录。然后你点击+。就是这样。【参考方案3】:

您还可以使用 M-! 运行单个 shell 命令

您基本上是在向命令行发送一个字符串,因此您不会获得任何好的自动完成功能,但如果您知道如何通过命令行执行操作但不知道 Emacs 等效方式,这将很有用。

M-! mkdir /path/to/new_dir

【讨论】:

这行得通,然后输入'g'来更新屏幕内容。【参考方案4】:

我想我今天早些时候做得很艰难。我做到了:

M-x shell-command

然后

mkdir -p topdir/subdir

【讨论】:

【参考方案5】:

您可以在任何缓冲区内使用 M-x make-directory,不一定是 dired 缓冲区。它是一个 lisp 函数,您也可以使用它。

【讨论】:

【参考方案6】:

我在搜索如何在 Emacs 中自动创建目录时遇到了这个问题。我找到的最佳答案是几年后的another thread。 Victor Deryagin 的答案正是我想要的。将该代码添加到您的 .emacs 将使 Emacs 在您保存文件时提示您创建目录。

【讨论】:

以上是关于如何从 Emacs 中创建目录?的主要内容,如果未能解决你的问题,请参考以下文章

如何在org-mode中创建多级有序(编号)普通列表?

使用 bash,如何从目录中的所有文件中创建类路径?

如何在指定路径中创建目录?

如何从 Windows 控制台调用 .exe (C++) 以在不同目录(或任何目录)中创建文件夹?

Emacs中如何实现代码折叠效果?

如何在 Qt 中创建共享小部件的子目录?