Emacs,切换特定窗口

时间:2013-10-19 03:55:16

标签: windows emacs buffer

我有一个缓冲区,我希望在按键上的emacs窗口中“切换”。

例如:

 ________________        ________________        ________________ 
|                |      |    |           |      |                |
|                |      |    |           |      |                |
|                |      |    |           |      |                |
|       W        |  ->  | S  |     W     |  ->  |        W       |
|                | <f3> |    |           | <f3> |                |
|                |      |    |           |      |                |
 ----------------        ----------------        ---------------- 

左侧窗口中的S是特定缓冲区。

出现的问题是,无论W的窗口结构是什么,都应该发生这种情况。如果W中有几个不同的窗口,按<F3>仍应在屏幕边缘创建一个新窗口,并将特定缓冲区放入其中,然后将其取走。

我不确定如何做到这一点就是emacs。

1 个答案:

答案 0 :(得分:6)

以此为出发点,需要包popwin

(require 'popwin)
(popwin-mode 1)

(generate-new-buffer "special-buffer")

(setq eab/special-buffer-displaedp nil)
(setq eab/special-buffer "special-buffer")

(add-to-list 'popwin:special-display-config
         `(,eab/special-buffer :width 20 :position left :stick t))    

(defun eab/special-buffer-toggle ()
  (interactive)
  (if eab/special-buffer-displaedp
      (progn
      (popwin:close-popup-window)
      (setq eab/special-buffer-displaedp nil))
    (progn
      (ignore-errors (popwin:display-buffer eab/special-buffer))
      (setq eab/special-buffer-displaedp 't))))

(global-set-key (kbd "<f3>") 'eab/special-buffer-toggle)