簡體   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