How do I create a directory from within Emacs?

前端 未结 6 2060
夕颜
夕颜 2021-01-29 20:15

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

相关标签:
6条回答
  • 2021-01-29 20:43

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

    0 讨论(0)
  • 2021-01-29 20:51

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

    M-x shell-command
    

    then

    mkdir -p topdir/subdir
    
    0 讨论(0)
  • 2021-01-29 20:51

    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.

    0 讨论(0)
  • 2021-01-29 20:53

    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
    
    0 讨论(0)
  • 2021-01-29 20:55

    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.

    0 讨论(0)
  • 2021-01-29 20:58
    • 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?

    0 讨论(0)
提交回复
热议问题