如何将 emacs 缓冲区移动到新的 window?
How to move an emacs buffer to a new window?
我在 Emacs 中打开了很多缓冲区 window。我想将其中一个缓冲区移动到新的 window。有执行此操作的命令吗?
IIUC,您想创建一个新的 WM window。
Emacs 使用略有不同的术语:在 GUI 环境中通常称为 "windows",Emacs 称为 "frames"。在单个框架内,Emacs 将其区域细分为单独的 "windows"(IOW,即使在非 GUI 环境中,Emacs 也充当 "tiling" window 管理器)。因此,您可以使用 C-x 5 2
(或等同于 M-x make-frame-command RET
)创建一个新帧,然后在该帧中,使用 C-x b <buffer-name> RET
.
切换到所需的缓冲区
顺便说一下,您没有 "move" 新框架的缓冲区:缓冲区的存在独立于显示框架中是否存在 (emacs) window缓冲区。
您要查找的命令是tear-off-window
。请注意,此命令必须与鼠标单击事件相关联。
比如你可以把下面的代码(from this reddit comment) in your init file (more about init file here):
(global-set-key [mode-line C-mouse-1] 'tear-off-window)
当您按住 Control 键并单击缓冲区模式行时,这将调用 tear-off-window
。
如果你想使用键盘绑定,下面是tear-off-window
的修改版本。把它放到你的init文件里,重启emacs后保存。
(bind-key "C-x C-X" #'my/tear-off-window)
(defun my/tear-off-window ()
"Delete the selected window, and create a new frame displaying its buffer."
(interactive)
(let* ((window (selected-window))
(buf (window-buffer window))
(frame (make-frame)))
(select-frame frame)
(switch-to-buffer buf)
(delete-window window)))
在代码中,修改后的命令绑定到"C-x C-X"。您可以随意将其更改为任何其他键序列(更多详细信息 here)。
我在 Emacs 中打开了很多缓冲区 window。我想将其中一个缓冲区移动到新的 window。有执行此操作的命令吗?
IIUC,您想创建一个新的 WM window。
Emacs 使用略有不同的术语:在 GUI 环境中通常称为 "windows",Emacs 称为 "frames"。在单个框架内,Emacs 将其区域细分为单独的 "windows"(IOW,即使在非 GUI 环境中,Emacs 也充当 "tiling" window 管理器)。因此,您可以使用 C-x 5 2
(或等同于 M-x make-frame-command RET
)创建一个新帧,然后在该帧中,使用 C-x b <buffer-name> RET
.
顺便说一下,您没有 "move" 新框架的缓冲区:缓冲区的存在独立于显示框架中是否存在 (emacs) window缓冲区。
您要查找的命令是tear-off-window
。请注意,此命令必须与鼠标单击事件相关联。
比如你可以把下面的代码(from this reddit comment) in your init file (more about init file here):
(global-set-key [mode-line C-mouse-1] 'tear-off-window)
当您按住 Control 键并单击缓冲区模式行时,这将调用 tear-off-window
。
如果你想使用键盘绑定,下面是tear-off-window
的修改版本。把它放到你的init文件里,重启emacs后保存。
(bind-key "C-x C-X" #'my/tear-off-window)
(defun my/tear-off-window ()
"Delete the selected window, and create a new frame displaying its buffer."
(interactive)
(let* ((window (selected-window))
(buf (window-buffer window))
(frame (make-frame)))
(select-frame frame)
(switch-to-buffer buf)
(delete-window window)))
在代码中,修改后的命令绑定到"C-x C-X"。您可以随意将其更改为任何其他键序列(更多详细信息 here)。