Как узнать, какой файл .emacs был загружен? - PullRequest
27 голосов
/ 14 мая 2009

Как мне заставить emacs указать мне местоположение загруженного файла .emacs?

Моя ситуация просто, когда я делаю sudo emacs, он загружает совсем другой файл .emacs, чем тот, что находится в моем домашнем каталоге. Я могу обойтись, выполнив M-x eval-buffer на своем собственном файле .emacs, но это много дополнительных шагов, плюс, похоже, он не очищает тупые привязки в любом загружаемом файле .emacs. Во всяком случае, я просто хотел бы найти файл .emacs и удалить некоторые странные привязки (c-n, c-p, c-a - все отскок к странным вещам)

Мой главный вопрос по-прежнему: как мне заставить emacs сообщить мне местоположение загруженного файла .emacs?

Ответы [ 3 ]

47 голосов
/ 14 мая 2009

Используемый файл инициализации хранится в переменной 'user-init-file'. Чтобы увидеть это, используйте «description-variable» (C-h v), введите «user-init-file», и он отобразит используемый файл.

6 голосов
/ 14 мая 2009

Вы можете попытаться увидеть, какой файл найден:

C-x C-f ~/.emacs RET

~ переводится в значение переменной окружения HOME. Emacs ищет .emacs, затем .emacs.elc (версия с байтовой компиляцией), затем .emacs.el, затем ~/.emacs.d/init.elc и ~/.emacs.d/init.el. Эта документация показывает альтернативы. Это также зависит от условий окружающей среды LOGNAME и USER.

Вы также можете проверить содержимое буфера *Messages* - хотя вы должны установить (setq message-log-max t) (если можете), чтобы обеспечить сохранение всех сообщений. Внутри этого буфера есть строки, которые выглядят так:

Загрузка /home/tjackson/.emacs.tjackson.el (источник) ...

, который покажет, какие файлы были загружены.

Вам также следует ознакомиться с документацией Find-Init , в которой показано еще больше файлов, которые можно загрузить, например, site-start.el, и инициализацией, специфичной для терминала (новинка для меня).

5 голосов
/ 14 мая 2009

Если вы работаете в Linux, вы можете попробовать это, чтобы увидеть, какие файлы открываются в emacs при запуске.

sudo strace -o /tmp/emacs.txt -e open emacs
...