一千萬個為什麽

搜索

是否有通用的toggle-previous-window功能?

一些主要模式具有代碼和鍵綁定,以在其下級進程和主模式緩沖區之間來回切換焦點。是否有一個Emacs函數允許我在當前窗口和上一個窗口之間執行此操作,以便重復調用該函數只會在最後兩個使用的窗口之間切換回來?

最佳答案

這是使用 other-window 和變量來跟蹤方向的快速實現。

(defvar last-window-direction 1)

(defun last-window ()
  (interactive)
  (other-window last-window-direction)
  (setq last-window-direction (- 0 last-window-direction)))

REVISED </強>

在使用鉤子跟蹤最後一個窗口幾次叠代之後,我發現Emacs已經有了這個功能(當然)。我正在用這個跨多個幀的函數替換前面的例子。我沒有進行過廣泛的測試,但到目前為止看起來非常方便。

(defun switch-to-last-window ()
  (interactive)
  (let ((win (get-mru-window t t t)))
    (unless win (error "Last window not found."))
    (let ((frame (window-frame win)))
      (raise-frame frame)
      (select-frame frame)
      (select-window win))))

轉載註明原文: 是否有通用的toggle-previous-window功能?