Emacs:如何使用保存列表从崩溃中恢复缓冲区?

car*_*man 6 crash emacs

如果启用桌面功能,则可以在退出并重新输入Emacs时返回到先前打开的文件集.但这似乎不是崩溃恢复功能.

如果Emacs崩溃,则会有一个名为"saving-PID-machine"的保存列表,其中包含具有缓冲区的文件列表.该列表包含文件本身和相应~备份文件的完整路径.

如何使用此保存列表返回崩溃前的缓冲区中的访问文件集?所有文件都没有挂起编辑,因此recover-session和recover-file不执行任何操作.

tri*_*eee 5

您可以下载并安装https://github.com/tripleee/recover-buffers,它可以访问自动保存文件中的所有文件,并可以恢复任何未保存的自动保存数据.

    ;;; recover-buffers.el --- revisit all buffers from an auto-save file
    ;;
    ;;; Commentary:
    ;;
    ;; Works like `recover-session', but attempts to really recover all state
    ;; back to the way it was when Emacs quit or crashed.  Concretely, it
    ;; revisits all buffers which were open, however skipping any which match
    ;; an ignore list.
Run Code Online (Sandbox Code Playgroud)

关于这一点,还有一个开放的Emacs错误; http://debbugs.gnu.org/889

我是此代码的作者,并希望得到任何反馈(尽管不是通过此公共论坛).


jul*_*ien 0

尝试过 Mx 恢复会话吗?

(recover-session)
从先前的 Emacs 会话中恢复自动保存文件。此命令首先显示 Dired 缓冲区,显示您可以从中恢复的先前会话。要选择其中之一,请将点移至适当的行,然后键入抄送抄送。然后系统会询问您要恢复的文件数量。

  • Julien,你描述的方法行不通。如果所有文件都已保存,然后编辑器崩溃(通常不是 emacs 崩溃),则恢复会话只是说没有任何内容可恢复,即使恢复文件有很长的文件列表。恢复会话功能似乎使用附加信息来查明列出的文件是否有未保存的更改。它将恢复对此类文件的编辑。否则该功能不会访问该文件。 (2认同)