Вы можете перезагрузить файл .emacs
с помощью M-x load-file ~ / .emacs . Есть и другие способы сделать это, посмотрите вопрос Как я могу загрузить изменения в мой .emacs без перезагрузки Emacs? .
Если вы считаете, что у вас проблема с файлом .emacs
, попробуйте открыть с помощью опции -q
:
emacs -q somefile
Если это работает, как ожидалось, у вас, вероятно, есть ошибка в вашем .emacs, и хорошим способом отладки вашего .emacs является использование опции --debug-init
:
emacs --debug-init
Что скажет Emacs предоставить трассировку стека любой ошибки, с которой он сталкивается при загрузке .emacs, что-то вроде:
Debugger entered--Lisp error: (wrong-type-argument symbolp (car n))
(setq (car n) 3)
(let ((n ...)) (setq (car n) 3))
eval-buffer(#<buffer *load*<2>> nil "/home/tjackson/.emacs.tjackson.el" nil t) ; Reading at buffer position 161460
load-with-code-conversion("/home/tjackson/.emacs.tjackson.el" "/home/tjackson/.emacs.tjackson.el" nil nil)
load("/home/tjackson/.emacs.tjackson.el")
(let ((debug-on-error t)) (load user-init-file))
(if init-file-debug (let (...) (load user-init-file)) (error (format "Problems while loading the file %s: %s" user-init-file ...)))
(condition-case err (load user-init-file) (error (if init-file-debug ... ...)))
(if (file-exists-p user-init-file) (condition-case err (load user-init-file) (error ...)))
eval-buffer(#<buffer *load*> nil "/home/tjackson/.emacs" nil t) ; Reading at buffer position 12150
load-with-code-conversion("/home/tjackson/.emacs" "/home/tjackson/.emacs" t t)
load("~/.emacs" t t)
#[nil "....."]
command-line()
normal-top-level()
И это обычно может указывать на то, что может быть не так. В моем случае выше я неправильно использую setq
, и похоже, что он внутри оператора let
, который находится внутри файла /home/tjackson/.emacs.tjackson.el
. Быстрый поиск в этом файле приводит меня к ошибке, и я могу ее исправить.