Перезагрузите .emacs для всех активных буферов - PullRequest
13 голосов
/ 27 августа 2011

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

Предлагаемые решения должны были использовать M-x load-file или M-x eval-region RET в измененном регионе.

Ни одно из этих решений не влияет на другие открытые буферы для меня. Есть ли способ перезагрузить файл .emacs для всех открытых буферов?

Следует также отметить, что M-x load-file не имеет желаемого эффекта по причинам, изложенным в комментариях к , которые отвечают .

Ответы [ 2 ]

18 голосов
/ 27 августа 2011

Ваш файл .emacs является глобальной конфигурацией, которая оценивается только один раз. Он не применяется к каждому буферу отдельно.

То, как вы на самом деле достигнете того, чего вы хотите, действительно будет зависеть от того, что это за изменения .emacs. Некоторые elisp вступят в силу только при первой оценке; или когда буфер меняет основные режимы; или когда файл загружен; и т. д. ...

Если вы хотите перезагрузить некоторые или все файловые буферы, ibuffer делает это довольно просто:

  • M-x ibuffer RET для запуска ibuffer (я рекомендую связать это с C-x C-b ).
  • / f . RET для фильтрации по имени файла regexp ., чтобы соответствовать любому имени файла.
  • m (на [default]) для пометки всех отфильтрованных буферов.
  • V (заглавными буквами) для возврата всех отмеченных буферов.

или вы можете заменить шаги 2 + 3 на M-x ibuffer-mark-by-file-name-regexp RET . RET . Вы можете связать эту команду с * f :

;; Bind `ibuffer-mark-by-file-name-regexp' to *f
(eval-after-load "ibuffer"
  '(define-key ibuffer-mode-map (kbd "* f") 'ibuffer-mark-by-file-name-regexp))

введите * c-h , чтобы увидеть все другие команды ibuffer-mark-*, которые связаны по умолчанию.

3 голосов
/ 27 августа 2011

Это может показаться вам грубой силой, но

  • это, безусловно, перезагрузит ваш файл инициализации (рассмотрим альтернативы .emacs )
  • , это перезагрузитвсе открытые буферы (при условии, что вы используете рабочий стол , что вам нужно)
  • это просто

    C-x C-c
    emacs --debug-init &
    
...