我想在特定的emacs缓冲区中显示某些内容。如果缓冲区尚未在某个窗口中显示,我想在当前帧的新窗口中显示它。如果它已经显示在某处,则我不想将这个窗口或框架调高或聚焦。我尝试过的操作: (pop-to-buffer buf nil 'norecord)
这不起作用,因为当我与显示“ buf”的帧不在同一帧时,它将打开一个新窗口。 (display-buffer buf nil t)
这几乎可以工作,但是会抬高显示缓冲区的帧。我希望框架保留在后台。
如何进行?也许有一个功能可以检查某个窗口的某个帧中是否已经显示了缓冲区?
如果我理解您的问题正确无误,以下功能将满足您的要求
(defun my-switch-to-buffer (buffer)
(interactive
(list (ido-read-buffer "Switch to buffer: ")))
;; get-buffer-window (with second argument t) will return
;; nil if the buffer is not open in any window across any
;; frame
(unless (get-buffer-window buffer 0)
(pop-to-buffer buffer nil t)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句