Измените каталог emacs по умолчанию на «Какао Emacs» - PullRequest
4 голосов
/ 29 июля 2010

Как объяснено в здесь , помещение (setq default-directory "~ / Desktop / mag") в .emacs должно изменить каталог по умолчанию.

Когда я делаю это с emacs на моем Mac, это не работает. C-x C-f по-прежнему показывает ~ / not ~ / Desktop / mag.

(cd "Users / smcho / Desktop / mag") также выдает мне эту ошибку - Ошибка: такой каталог не найден через переменную среды CDPATH

Что с ними не так?

Ответы [ 3 ]

15 голосов
/ 30 июля 2010

Каталог, который появляется в приглашении для C-x C-f ('find-file'), происходит от значения default-directory, которое является локальной буферной переменной. Когда вы в первый раз запускаете Emacs, отображается начальный буфер GNU Emacs . Каталог по умолчанию для этого буфера устанавливается из переменной command-line-default-directory.

Итак, попробуйте это:

(setq command-line-default-directory "~/Desktop/mag")
6 голосов
/ 29 июля 2010

Прямой ответ на ваш вопрос:

(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 . Хотя трудно сказать.

3 голосов
/ 11 января 2013

В дополнение к приведенным выше примечаниям относительно default-directory мне также пришлось запретить запуск заставки emacs, чтобы последующие команды, такие как dired, фактически отображали свой буфер при вызове из .emacs при запуске:

   (setq inhibit-splash-screen t)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...