如何在 Emacs 中重新打开所有文件?

How to just reopen all files in Emacs?

我的 Emacs 会话中打开了大约 400 个文件。我正在配置一些模式,所有缓冲区都更改为 fundamental-mode

现在,当我打开一个文件时,Emacs 会选择正确的主要模式,但已经打开的文件仍然处于基本模式。我如何强制 Emacs 重新打开所有打开的文件并为每个文件选择正确的模式?

试试这个:

(defun aak/auto-mode-anywhere ()
  (interactive)
  (dolist (buffer (buffer-list))
    (with-current-buffer buffer
      (when (and
             (eq major-mode 'fundamental-mode)
             (buffer-file-name))
         (set-auto-mode)))))

M-x aak/auto-mode-anywhere 不会完全 "reopen" 文件(没有恢复或重新加载),但它会为正在访问文件的 fundamental-mode 缓冲区设置适当的主模式(基于 auto-mode-alist 等)。

  • M-x ibuffer RET
  • *M fundamental-mode RET -- 标记所有基本-模式缓冲区
  • E (normal-mode) RET -- 在选定的缓冲区中评估 elisp
  • **RET -- 删除所有标记
  • q -- 关闭 ibuffer 缓冲区