我有一个缓冲区,我希望在按键上的emacs窗口中“切换”。
例如:
________________ ________________ ________________
| | | | | | |
| | | | | | |
| | | | | | |
| W | -> | S | W | -> | W |
| | <f3> | | | <f3> | |
| | | | | | |
---------------- ---------------- ----------------
左侧窗口中的S
是特定缓冲区。
出现的问题是,无论W
的窗口结构是什么,都应该发生这种情况。如果W
中有几个不同的窗口,按<F3>
仍应在屏幕边缘创建一个新窗口,并将特定缓冲区放入其中,然后将其取走。
我不确定如何做到这一点就是emacs。
答案 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)