emacs - 在其他框架中显示当前文件
emacs - show the current file in other frame
我想做类似于iswitchb-buffer-other-frame
的事情
除了以编程方式将文件名设置为当前帧。
(使用 iswitchb-buffer-other-frame
您必须交互式地选择文件)
如果 iswitchb 已过时,我可以使用 ido-mode
或其他包(或直接 Lisp)实现吗?
我该怎么做?
编辑
根据@pickle-rick的回答,我根据需要调整了代码。
- 我需要使用
switch-to-buffer-other-window
而不是 switch-to-buffer-other-frame
。
我不确定为什么...
在我的设置中,我有 2 个帧 - 每个帧都有一个 window,我需要将当前缓冲区移动到另一个帧。
但它有效!
- 此外,我用任意缓冲区填充原始帧 (
*scratch*
)(以防止在原始帧中显示原始缓冲区)
这是我调整后的代码:
(defun my-switch-buffer-other-frame ()
(interactive)
(switch-to-buffer-other-window (current-buffer))
(other-frame 1)
(switch-to-buffer "*scratch*")
(other-frame 1))
与 ido 等效的是 ido-switch-buffer-other-frame
,它也提示交互式选择。这是一个简单的修改来避免提示,而是使用当前缓冲区,
(defun my-switch-buffer-other-frame ()
(interactive)
(switch-to-buffer-other-frame (current-buffer)))
我想做类似于iswitchb-buffer-other-frame
的事情
除了以编程方式将文件名设置为当前帧。
(使用 iswitchb-buffer-other-frame
您必须交互式地选择文件)
如果 iswitchb 已过时,我可以使用 ido-mode
或其他包(或直接 Lisp)实现吗?
我该怎么做?
编辑
根据@pickle-rick的回答,我根据需要调整了代码。
- 我需要使用
switch-to-buffer-other-window
而不是switch-to-buffer-other-frame
。 我不确定为什么... 在我的设置中,我有 2 个帧 - 每个帧都有一个 window,我需要将当前缓冲区移动到另一个帧。 但它有效! - 此外,我用任意缓冲区填充原始帧 (
*scratch*
)(以防止在原始帧中显示原始缓冲区)
这是我调整后的代码:
(defun my-switch-buffer-other-frame ()
(interactive)
(switch-to-buffer-other-window (current-buffer))
(other-frame 1)
(switch-to-buffer "*scratch*")
(other-frame 1))
与 ido 等效的是 ido-switch-buffer-other-frame
,它也提示交互式选择。这是一个简单的修改来避免提示,而是使用当前缓冲区,
(defun my-switch-buffer-other-frame ()
(interactive)
(switch-to-buffer-other-frame (current-buffer)))