Открытие emacs без царапины буферизует при открытии файла

Я изменил настройки в Emacs. Теперь, каждый раз, когда я пытаюсь открыть файл из командной строки, это открывает a *scratch* буфер сверху файла. Существует ли способ избавиться от этого? Или способ сбросить мой emacs запускает настройки?

6
задан nbro 5 August 2017 в 21:45
поделиться

3 ответа

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

1
ответ дан 10 December 2019 в 02:46
поделиться
M-x customize-group
initialization

Затем при выборе начального буфера вы можете выбрать один из следующих вариантов:

  • Экран запуска
  • Каталог
  • Файл
  • рабочий буфер

Наконец, нажмите сохранить для будущих сеансов .

Вы также можете включить / выключить его. Посмотрим, поможет ли это.

(Другая вещь, которую вы, вероятно, захотите сделать, - это открыть только один буфер при запуске. Я не помню наизусть, как это делается. Я опубликую обновление, если найду это).

4
ответ дан 10 December 2019 в 02:46
поделиться

Вы можете перезагрузить ваш .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. Быстрый поиск в этом файле приводит меня к ошибке, и я могу ее исправить.

3
ответ дан 10 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: