![](/img/trans.png)
[英]In Emacs, how can I open a buffer/file in “ibuffer/dired mode” in another frame?
[英]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.