gpt4 book ai didi

Emacs:保存和恢复原始框架布局(例如使用 ediff 时)

转载 作者:行者123 更新时间:2023-12-04 21:52:41 25 4
gpt4 key购买 nike

在典型的 Emacs session 中,我通常只打开一个框架,并将其分为 4 window 形成 2x2 每个窗口中带有一些特定缓冲区(文件)的网格。

每次用ediff-buffers为了比较两个缓冲区,Emacs 获取我现有的帧,并将其重新垂直拆分为两个窗口(我可以通过随后按下 - 来选择水平)。然而,当我退出ediff session ,Emacs 做 不是 自动恢复我框架中窗口的原始布局。

有了这个,我的问题是:

  • 有没有办法自动恢复我原来的布局?
  • 更好的是,我怎么会有ediff-buffers使用 新的独立框架只为 ediff session 并在我退出 ediff 时自动关闭它 session ?
  • 最佳答案

    您可以在 ediff 的入口/导出 Hook 上设置功能,以保存/恢复窗口配置,以及创建新框架。这似乎在 Emacs 24.3 中成功了 - 我不明白为什么它在旧版本中不起作用:

    (defvar pre-ediff-window-configuration nil
    "window configuration to use")
    (defvar new-ediff-frame-to-use nil
    "new frame for ediff to use")
    (defun save-my-window-configuration ()
    (interactive)
    (setq pre-ediff-window-configuration (current-window-configuration))
    (select-frame-set-input-focus (setq new-ediff-frame-to-use (new-frame))))
    (add-hook 'ediff-before-setup-hook 'save-my-window-configuration)
    (defun restore-my-window-configuration ()
    (interactive)
    (when (framep new-ediff-frame-to-use)
    (delete-frame new-ediff-frame-to-use)
    (setq new-ediff-frame-to-use nil))
    (when (window-configuration-p pre-ediff-window-configuration)
    (set-window-configuration pre-ediff-window-configuration)))
    (add-hook 'ediff-after-quit-hook-internal 'restore-my-window-configuration)

    关于Emacs:保存和恢复原始框架布局(例如使用 ediff 时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423959/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com