如何在emacs中的单个调用中在新帧中打开间接缓冲区?

如何在emacs中的单个调用中在新帧中打开间接缓冲区?,emacs,Emacs,有几个函数可以在新帧中打开缓冲区(display buffer other frame,切换到buffer other frame),但是如何在新帧中创建间接缓冲区(即在单个调用中)?这就是您要寻找的吗 克隆间接缓冲区其他窗口是一个交互式编译的Lisp 函数位于simple.el 它被绑定到C-x4c (克隆间接缓冲区其他窗口NEWNAME DISPLAY-FLAG&可选 NORECORD) 与克隆间接缓冲区类似,但显示在另一个窗口中 使用C-h f clone间接缓冲区查看有关该命令作用的详细

有几个函数可以在新帧中打开缓冲区(
display buffer other frame
切换到buffer other frame
),但是如何在新帧中创建间接缓冲区(即在单个调用中)?

这就是您要寻找的吗

克隆间接缓冲区其他窗口
是一个交互式编译的Lisp 函数位于
simple.el

它被绑定到
C-x4c

(克隆间接缓冲区其他窗口NEWNAME DISPLAY-FLAG&可选
NORECORD)

与克隆间接缓冲区类似,但显示在另一个窗口中

使用
C-h f clone间接缓冲区
查看有关该命令作用的详细信息


好的,您希望它在一个单独的框架中打开,而不仅仅是一个单独的Emacs窗口。为此,您可以定义自己的
clone indirect buffer other frame
,但只需在调用
clone indirect buffer
时将
弹出框
绑定到
t
,就像
clone indirect buffer other window
绑定
弹出窗口一样

(defun clone-indirect-buffer-other-frame (newname display-flag &optional norecord)
  "Like `clone-indirect-buffer' but display in another window."
  (interactive
   (progn
     (if (get major-mode 'no-clone-indirect)
     (error "Cannot indirectly clone a buffer in %s mode" mode-name))
     (list (if current-prefix-arg
           (read-buffer "Name of indirect buffer: " (current-buffer)))
       t)))
  ;; (let ((pop-up-windows t))
  (let ((pop-up-frames t)) ; <==========
    (clone-indirect-buffer newname display-flag norecord)))
(取消克隆间接缓冲区其他帧(新名称显示标志和可选norecord)
“类似于‘克隆间接缓冲区’,但显示在另一个窗口中。”
(互动
(项目
(如果(获取主模式“无克隆间接”)
(错误“无法在%s模式下间接克隆缓冲区”模式名称)
(列表(如果当前前缀为arg
(读取缓冲区“间接缓冲区的名称:”(当前缓冲区)))
t) ))
;;(让((弹出窗口t))
(let((弹出帧t));