Как заставить Emacs создавать промежуточные каталоги - при сохранении файла? - PullRequest
17 голосов
/ 26 июля 2011

Есть ли способ создать дерево папок в emacs - аналогично

mkdir -p

в баш?

В основном - я хочу, чтобы emacs создавал все промежуточные каталоги - если они не существовали - когда я сохраняю файл.

Ответы [ 3 ]

27 голосов
/ 26 июля 2011

Функция make-directory делает это.Ваша конкретная проблема может быть решена так:

(add-hook 'before-save-hook
          (lambda ()
            (when buffer-file-name
              (let ((dir (file-name-directory buffer-file-name)))
                (when (and (not (file-exists-p dir))
                           (y-or-n-p (format "Directory %s does not exist. Create it?" dir)))
                  (make-directory dir t))))))
3 голосов
/ 26 июля 2011

Вы также можете просто выполнить mkdir -p изнутри emacs, используя M-!, чтобы получить командную строку оболочки.

Тогда все, что вам нужно сделать, это поместить структуру каталогов в:

M-! dir1/dir2/dir3/dir4.....

2 голосов
/ 26 июля 2011

(make-directory DIR и необязательные PARENTS)

Создать каталог DIR и любые несуществующие родительские каталоги.Если DIR уже существует в качестве каталога, сообщите об ошибке, если не установлен PARENTS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...