8

我有一个缓冲区,我想通过按键在 emacs 的窗口中“切换”打开。

例如:

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

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

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

但是,我不确定如何执行此操作是 emacs。

4

1 回答 1

7

试试这个作为起点,它需要 package 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)
于 2013-10-19T05:12:08.140 回答