您可以在入口/出口掛鉤上設置ediff的功能以保存/恢復窗口配置,以及創建新框架。這似乎這樣的伎倆在Emacs 24.3 - 我不明白爲什麼它會在舊版本不能正常工作:至少在Emacs
(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的術語重新編寫問題? Emacs有一個或多個*幀*,每個*幀包含一個或多個*窗口*,每個窗口顯示單個緩衝區。您可以通過拆分舊窗口來創建新窗口(例如'C-x 2')。您可以使用例如'C-x 5 2'創建新框架。起初我以爲你剛剛用「窗格」代替了「窗格」,但最後我不能確定,就像你提到「垂直將窗格重新分成兩個窗格」一樣。由於ediff提供了一些圍繞窗口/框架使用的選項,有一個更精確的問題將會有所幫助。 – phils
謝謝phils。我實際上意識到了這種區別,但意外地使用了'pane'而不是'frame'。對困惑感到抱歉。 –
我更新了帖子。謝謝@phils –