ChatGPT解决这个技术问题 Extra ChatGPT

How do I create a directory from within Emacs?

How exactly can I create a new directory using Emacs? What commands do I use? (If possible, please provide an example)


C
Community

to create the directory dir/to/create, type: M-x make-directory RET dir/to/create RET

to create directories dir/parent1/node and dir/parent2/node, type: M-! mkdir -p dir/parent{1,2}/node RET It assumes that Emacs's inferior shell is bash/zsh or other compatible shell.

or in a Dired mode + It doesn't create nonexistent parent directories. Example: C-x d *.py RET ; shows python source files in the CWD in `Dired` mode + test RET ; create `test` directory in the CWD CWD stands for Current Working Directory.

or just create a new file with non-existing parent directories using C-x C-f and type: M-x make-directory RET RET

Emacs asks to create the parent directories automatically while saving a new file in recent Emacs versions. For older version, see How to make Emacs create intermediate dirs - when saving a file?


Hi J.F. Sebastian, When I create a directory in shell , how to update the directory window ?
@why: type g. In general M-x describe-mode RET (C-h m) to display documentation of current major mode.
Thanks very much! But you mean I input M-x g or C-x g ?
@why he means a single g. Since dired-mode is not an editing mode, it uses single-letter commands directly (for the curious: g is bound to self-insert-command in most editing modes).
C-x d *.py RET is supposed to show python files? It says: "Reading directory: No such file or directory, /some/path/*.py".
J
JasonMArcher

Ctrl+X D (C-x d) to open a directory in "dired" mode, then + to create a directory.


I assume the '+' goes at the end of whatever the new file path directory is going to be?
when I do C-x C-f and enter "+ dirname" emacs creates a file "+ dirname", it does not create a directory "dirname". I am working with OSX, I don't know if that's the problem because in Linux this worked.
@Zeynel: You're not reading. There is no C-x C-f here. You use C-x d to get into Dired mode, visiting the directory where you want to create a subdirectory. Then you hit +. That's all.
J
JMFR

You can also run single shell commands using M-!

You're basically sending a string to the command line so you don't get any nice auto-completion but it's useful if you know how to perform an action through the command line but don't know an Emacs equivalent way.

M-! mkdir /path/to/new_dir

This works, type 'g' afterwards to update the screen contents.
e
etank

I guess I did it the hard way earlier today. I did:

M-x shell-command

then

mkdir -p topdir/subdir

M
Michael Hoffman

You can use M-x make-directory inside of any buffer, not necessarily a dired buffer. It is a lisp function you can use as well.


C
Community

I came across this question while searching for how to automatically create directories in Emacs. The best answer I found was in another thread from a few years later. The answer from Victor Deryagin was exactly what I was looking for. Adding that code to your .emacs will make Emacs prompt you to create the directory when you go to save the file.