如何从 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/node
和dir/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 中创建目录?的主要内容,如果未能解决你的问题,请参考以下文章