Как я могу перезагрузить .emacs после его изменения? - PullRequest
352 голосов
/ 05 апреля 2010

Как я могу заставить Emacs перезагрузить все мои определения, которые я обновил в .emacs без перезапуска Emacs?

Ответы [ 18 ]

317 голосов
/ 05 апреля 2010

Вы можете использовать команду load-file ( M-x load-file, затем дважды нажать клавишу возврата, чтобы принять имя файла по умолчанию, которое является текущим редактируемым файлом).

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

140 голосов
/ 17 ноября 2014

Очень странно, что очень удобно

М-х eval-buffer

здесь не упоминается.

Он немедленно оценивает весь код в буфере, это самый быстрый метод, если ваш .emacs идемпотентен

42 голосов
/ 05 апреля 2010

Обычно вы можете просто переоценить измененный регион. Отметьте область ~ / .emacs, которую вы изменили, и затем используйте M-x eval-region RET. Это часто безопаснее, чем переоценка всего файла, поскольку легко написать файл .emacs, который не работает сразу после двойной загрузки.

36 голосов
/ 17 февраля 2010

Если у вас есть файл .emacs, открытый в текущем активном буфере:

M-x eval-buffer
26 голосов
/ 05 апреля 2010
M-x load-file
~/.emacs
13 голосов
/ 17 февраля 2010

Следующие должны сделать это ...

M-x load-file
11 голосов
/ 17 февраля 2010

Другие уже ответили на ваш вопрос, как указано, но я обнаружил, что обычно хочу выполнить только что написанные строки. для этого Ctrl Alt x в списке работает просто отлично.

9 голосов
/ 10 августа 2018

решение

M -: (load user-init-file)


примечания

  • вы вводите его в приглашении Eval: (включая скобки)
  • user-init-file - это переменная, содержащая значение ~/.emacs (указывающее путь к файлу конфигурации) по умолчанию
  • (load) - более короткая, старая и неинтерактивная версия (load-file); это не команда emacs (вводится в M-x ), а просто функция elisp

заключение

M-:> M-x

8 голосов
/ 26 января 2017

Сочетание клавиш:

(defun reload-init-file ()
  (interactive)
  (load-file user-init-file))

(global-set-key (kbd "C-c C-l") 'reload-init-file)    ; Reload .emacs file
7 голосов
/ 18 февраля 2010

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

Когда вы, наконец, довольны своими изменениями, продолжайте и используйте один из других ответов для повторной загрузки. Лично я предпочитаю eval только тот раздел, который вы добавили / изменили, и для этого просто выделите область добавленного / измененного кода и позвоните M-x eval-region. Это минимизирует оцениваемый код, сводя к минимуму любые непреднамеренные побочные эффекты, как указывает Луапяд.

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