Как мне создать каталог из Emacs?

142

Как именно я могу создать новый каталог с помощью Emacs? Какие команды я использую? (Если возможно, приведите пример)

луч
источник

Ответы:

195
  • чтобы создать каталог dir/to/create, введите:

    M-x make-directory RET dir/to/create RET
  • для создания каталогов dir/parent1/nodeи dir/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 создавать промежуточные каталоги - при сохранении файла?

JFS
источник
1
Привет, JF Sebastian, Когда я создаю каталог в оболочке, как обновить окно каталога?
почему
2
@ почему: типа g. В общем M-x describe-mode RET( C-h m) для отображения документации текущего основного режима.
JFS
Огромное спасибо! Но вы имеете в виду, что я ввожу Mx g или Cx g?
почему
1
@why он означает одно g. Поскольку dired-modeэто не режим редактирования, он использует однобуквенные команды напрямую (для любопытных: gон связан с self-insert-commandбольшинством режимов редактирования).
Вики Чиджвани
42

Ctrl+ X D( C-x d), чтобы открыть каталог в режиме «dired», затем +создать каталог.

Кирк Штраузер
источник
Я предполагаю, что '+' идет в конце любого нового каталога пути к файлу?
Рэй
когда я делаю Cx Cf и ввожу "+ dirname", emacs создает файл "+ dirname", но не создает каталог "dirname". Я работаю с OSX, я не знаю, в этом ли проблема, потому что в Linux это работало.
Зейнел
4
@Zeynel: Ты не читаешь. Там нет C-x C-fздесь. Вы используете C-x dдля входа в режим Dired, посещая каталог, где вы хотите создать подкаталог. Тогда ты ударил +. Вот и все.
Дрю
8

Вы также можете запустить отдельные команды оболочки, используя M-!

По сути, вы отправляете строку в командную строку, поэтому вы не получаете никакого хорошего автозаполнения, но это полезно, если вы знаете, как выполнить действие через командную строку, но не знаете эквивалентного способа Emacs.

M-! mkdir /path/to/new_dir
Cristian
источник
Это работает, затем введите «g» для обновления содержимого экрана.
ошибочно
5

Я думаю, что сегодня я сделал это трудным путем. Я сделал:

M-x shell-command

затем

mkdir -p topdir/subdir
etank
источник
4

Вы можете использовать M-x make-directoryвнутри любого буфера, не обязательно буфер с задержкой. Вы также можете использовать эту функцию.

Джонатан Аркелл
источник
2

Я сталкивался с этим вопросом, когда искал, как автоматически создавать каталоги в Emacs. Лучший ответ, который я нашел, был в другой ветке нескольких лет спустя. Ответ Виктора Дерягина был именно тем, что я искал. Добавление этого кода в ваш .emacs заставит Emacs предложить вам создать каталог, когда вы сохраните файл.

Брайан Тейлор
источник