为所有活动缓冲区重新加载.emacs



一个问题已经被问到如何在更改.emacs文件后重新加载。

建议在改变的区域使用M-x load-fileM-x eval-region RET

这两种解决方案对我来说都不会影响其他打开的缓冲区。是否有一种方法重新加载.emacs文件为所有打开的缓冲区?

我还应该注意到,M-x load-file没有达到预期的效果,原因在该答案的评论中概述。

.emacs文件是一个全局配置,只计算一次。它不会单独应用于每个缓冲区。

你实际上如何实现你想要的是真正取决于这些。emacs的变化是什么。有些省略只在第一次求值时生效;或者当缓冲区改变主要模式时;或者当文件被加载时;等等…

如果您想重新加载部分或全部文件缓冲区,ibuffer使这非常容易:

  • M-x ibuffer RET启动ibuffer(我建议将此绑定到C-xC-b)。
  • / f RET通过文件名regexp .进行过滤,以便匹配任何文件名。
  • m(在[default]上)标记所有过滤缓冲区。
  • V(大写)恢复所有标记缓冲区。

或者你可以用M-x ibuffer-mark-by-file-name-regexp RET . RET来代替步骤2+3。您可能希望将该命令绑定到*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-*命令。

你可能觉得这是蛮力,但是

  • 它肯定会重新加载你的初始化文件(考虑替代。emacs)
  • 它将重新加载所有打开的缓冲区(如果你正在使用桌面,你应该)
  • 这很容易

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

最新更新