Прямой ответ на ваш вопрос:
(setq-default default-directory "~/Desktop/mag")
Читая документацию для переменной ( C-h v default-directory RET ), вы увидите:
Автоматически становится локальным буфером
когда установлено любым способом. это
переменная безопасна как локальный файл
переменная, если ее значение удовлетворяет
предикат `stringp '.
Тем не менее, открытие файла автоматически устанавливает default-directory
путь к файлу ...
Итак, если вы всегда хотите, чтобы find-file
запускался в этом каталоге, вы можете использовать это:
(global-set-key (kbd "C-x C-f") 'my-find-file)
(defun my-find-file ()
"force a starting path"
(interactive)
(let ((default-directory "~/scratch/"))
(call-interactively 'find-file)))
Этот вопрос может быть дубликатом Предотвращение автоматического изменения default-directory . Хотя трудно сказать.