【问题标题】:Restore Emacs Session/Desktop恢复 Emacs 会话/桌面
【发布时间】:2010-04-24 08:27:18
【问题描述】:

我一直在寻找如何恢复 emacs 会话,但没有成功。我正在寻找恢复所有以前打开的缓冲区,其中一些可能包含 erc、shell、目录列表、文件等。

每次打开 emacs 时,我都会花费大量时间来安排缓冲区;将它们分成行和列,打开一个外壳,安排 irc 通道。开始工作需要一段时间。

我尝试将以下内容添加到我的 init.el

(desktop-save-mode 1)

然后使用M-x desktop-save。这似乎只能恢复打开的文件,而不是 shell 或在缓冲区中运行的任何其他东西。

我还检查了以下问题:

并通读:

这是我的 emacs 会话的 screenshot example

一个简单的答案就是只专注于实际工作:P

【问题讨论】:

    标签: emacs


    【解决方案1】:

    我建议一个简单的解决方案 - 创建一个设置您喜欢的布局的函数。例如,我喜欢在屏幕的后半部分在单独的窗口中放置一些 IRC 通道,以便我可以不时查看它们,同时在另一个窗口中进行编码。所以我写了一些简单的代码来处理窗口拆分并按照我的意愿安排我的缓冲区:

    ;; show some buffers
    (defun show-some-buffers (buffer-list)
      (split-window-horizontally)
      (other-window 1)
      (dolist (buffer buffer-list)
        (split-window-vertically)
        (switch-to-buffer (get-buffer buffer))
        (other-window 1))
      ;; at the end we have one extra window we need to delete
      (delete-window)
      (balance-windows))
    
    ;; show some erc buffers
    (defun show-erc-buffers ()
      (interactive)
      (show-some-buffers '("#emacs" "#clojure")))
    

    代码相当简单,没有错误检查,但它会给你一个暗示我的意思。

    您可能还想考虑使用registers 来存储一些窗口配置。

    【讨论】:

    • 非常感谢您的详细回复。通过一些工作,我相信我将能够通过这种方法获得一个很好的解决方案。干杯。
    • 非常好的模块化解决方案。
    【解决方案2】:

    如您所见,desktop.el 和 session.el 是一个好的开始,但它们不会恢复窗口布局。

    但是,使用revive.el 您可以保存/恢复任意窗口配置,这些配置会在重启之间被记住。

    还可以查看与窗口布局相关的 these hints,其中涵盖了获胜者模式和将窗口配置保存到寄存器中的技巧。

    【讨论】:

      【解决方案3】:

      除了@Bozhidar 对自动化窗口布局(我自己做)的出色回答外,您可能还想研究使用GNU Screen,它可用于在登录时保留任意一组进程。有一个很好的教程here,而且由于您将使用 emacs,您还需要阅读 this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-13
        • 2020-05-21
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 2020-12-19
        • 2023-01-15
        相关资源
        最近更新 更多