繁体   English   中英

如何打开一个始终在emacs中显示其父框架的活动缓冲区的新框架?

[英]How can I open a new frame which always displays the active buffer of its parent frame in emacs?

我希望有一个快捷方式在emacs中创建一个新框架,它将始终显示创建它的框架的活动缓冲区。 这样,帧可以移动到另一个工作区,以保持另一个emacs框架的小预览。

以下是我对一个函数的尝试,该函数将使新帧始终显示父帧的缓冲区。 get-active-buffer是伪代码,但除此之外,其余的应该是诀窍。

(defun display-active-buffer (parent-frame)
  (while t
    (let ((active-buffer (get-current-buffer parent-frame)))
      (cond (/= active-buffer (current-buffer))
        (switch-to-buffer-other-frame active-buffer)))))

实际上我只是想知道get-current-buffer这样的函数是什么样的,它会像当前缓冲区一样,除了它会将一个帧作为参数,而不是仅仅使用当前帧。 我还需要找出一些方法将父框架的名称传递给这个函数。 我也不确定为此使用无限循环是多么聪明。 如果有人知道更好的方法,请告诉我。

我觉得这可能是一个非常有用的功能添加到emacs,所以如果我想出所有这一切,我将确保编辑这篇文章,以添加我完成的代码供任何人使用。

我不知道你为什么要这样做,但我认为这就是你所描述的:

(defun make-frame-synced-to-current-frame-current-buffer ()
  (interactive)
  (let ((parent-frame (selected-frame))
        (synced-frame (make-frame)))
    (add-hook
     'window-configuration-change-hook
     `(lambda ()
        (if (eq (selected-frame) ,parent-frame)
            (save-excursion
              (select-frame ,synced-frame)
              (switch-to-buffer (window-buffer
                                 (frame-selected-window
                                  ,parent-frame)))
              (select-frame ,parent-frame)))))))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM