如何在Emacs中创建目录?


142

我究竟如何使用Emacs创建一个新目录?我使用什么命令?(如果可能,请提供示例)

Answers:


195
  • 创建目录dir/to/create,输入:

    M-x make-directory RET dir/to/create RET
  • 创建目录dir/parent1/nodedir/parent2/node,输入:

    M-! mkdir -p dir/parent{1,2}/node RET

    假定Emacs的下层外壳是bash/ zsh或其他兼容的外壳。

  • 或以某种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版本中保存新文件。对于旧版本,请参阅如何使Emacs创建中间目录-保存文件时?


1
嗨,JF Sebastian,当我在shell中创建目录时,如何更新目录窗口?
为什么

2
@why:输入g。在一般M-x describe-mode RETC-h m)中显示当前主要模式的文档。
jfs 2012年

非常感谢!但是您的意思是我输入了Mx g或Cx g?
为什么

1
@他为什么单身g。由于dired-mode不是编辑模式,因此它直接使用单字母命令(出于好奇:在大多数编辑模式下g都绑定到此命令self-insert-command)。
Vicky Chijwani

42

Ctrl+ X DC-x d)以“脏”模式打开目录,然后+创建目录。


我认为“ +”放在新文件路径目录的末尾吗?
Ray

当我执行Cx Cf并输入“ + dirname”时,emacs将创建文件“ + dirname”,但不会创建目录“ dirname”。我正在使用OSX,所以我不知道这是否是问题,因为在Linux中这行得通。
Zeynel

4
@Zeynel:你不读书。这里没有C-x C-f。您C-x d用来进入Dired模式,访问要在其中创建子目录的目录。然后你打+。就这样。
Drew

8

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

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

M-! mkdir /path/to/new_dir

这有效,然后键入“ g”以更新屏幕内容。
6

5

我想今天早些时候我很努力。我做了:

M-x shell-command

然后

mkdir -p topdir/subdir

4

您可以M-x make-directory在任何缓冲区内部使用,而不必在Dired缓冲区中使用。您也可以使用lisp函数。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.