將 Emacs 視窗拆分為新框架

將 Emacs 視窗拆分為新框架

從一個框架第一幀包含兩個 Emacs 窗口,雙贏顯示緩衝區緩衝一雙贏顯示緩衝區二,我希望能夠“打破”雙贏進入它自己的框架,也許使用修改器點擊模型行。在這之後,

  • 兩個都雙贏雙贏將保留其各自的高度/寬度和緩衝區關聯第一幀
  • 雙贏會留在同一個地方第一幀, 和雙贏現在將在一個新的、單獨的第二幀
  • 盡可能保留原始位置、顏色和字體設置

我想知道這種行為是否在標準庫中可用,是否有擴展,或者一個小的 elisp 函數是否可以工作?

答案1

是的,有這樣一個命令:mouse-tear-off-window。我將它綁定到C-mouse-1模式行:

(global-set-key [mode-line C-mouse-1] 'mouse-tear-off-window)

此指令在普通 Emacs ( ) 中可用emacs -Q。但我使用我自己的版本,如果視窗單獨位於其框架中,則不會刪除該視窗。相反,它克隆了框架和視窗。該版本在庫中滑鼠+.el。文件字串:

,----
| mouse-tear-off-window is an interactive compiled Lisp function in
| `mouse+.el'.
| 
| It is bound to mode-line C-mouse-1.
| 
| (mouse-tear-off-window EVENT)
| 
| Create a new frame displaying buffer of window clicked on.
| If window is not the only one in frame, then delete it.
| Otherwise, this command effectively clones the frame and window.
`----

答案2

這是預設綁定:

C-x 5 C-o : display-buffer-other-frame

其作用是:在另一幀中顯示緩衝區 BUFFER。

答案3

您可以使用:

M-x new-frame

我已將其綁定到F9,例如:

(global-set-key (kbd "<f9>") 'new-frame)

相關內容