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?
Ctrl+X D (C-x d
) to open a directory in "dired" mode, then + to create a directory.
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.
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
I guess I did it the hard way earlier today. I did:
M-x shell-command
then
mkdir -p topdir/subdir
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.
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.
Success story sharing
g
. In generalM-x describe-mode RET
(C-h m
) to display documentation of current major mode.g
. Sincedired-mode
is not an editing mode, it uses single-letter commands directly (for the curious:g
is bound toself-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".