我将尝试创建一个函数,通过替换缓冲区列表来修改帧的缓冲区列表,以显示在同一帧上的Tabbar组中的选项卡列表。
以下是返回所选帧上显示的Tabbar组选项卡列表的代码段:
以下函数返回
以下是返回所选帧上显示的Tabbar组选项卡列表的代码段:
(mapcar (lambda (tab)
(buffer-name (tabbar-tab-value tab)))
(tabbar-tabs (tabbar-current-tabset t)))
以下函数返回
nil
而不是所需的修改后的缓冲区列表。如有建议,将不胜感激。(defun new-buffer-list ()
(interactive)
(message "Original Buffer List: %s" (frame-parameter (selected-frame) 'buffer-list))
(setq new-list
(mapcar (lambda (tab)
(buffer-name (tabbar-tab-value tab)))
(tabbar-tabs (tabbar-current-tabset t))))
(modify-frame-parameters (selected-frame) (list (cons 'buffer-list new-list)))
(message "The variable \"new-list\": %s" new-list)
(message "Modified Buffer List: %s" (frame-parameter (selected-frame) 'buffer-list)))
frame-bufs.el
版本,以便与 Tabbar 兼容。当切换到frame-bufs-mode
时,有一个可选的框架初始化,将每个带有焦点的缓冲区与帧关联起来:(mapcar #'(lambda (x) (window-buffer x)) (window-list frame 'no-minibuf))
。我想使用我的new-list
替代它,这样所有打开的标签都会被关联。如果有一种方法可以修改我的new-list
的格式,使其与(mapcar #'(lambda (x) (window-buffer x)) (window-list frame 'no-minibuf))
完全相同,那就可以解决问题了。 - lawlist(frame-parameter frame 'buffer-list)
和(frame-parameter frame 'buried-buffer-list)
和(mapcar #'(lambda (x) (window-buffer x)) (window-list frame 'no-minibuf))
。 - lawlist(frame-parameter 'nil 'buffer-list)
返回的是缓冲区列表,而不是它们的名称;你可能想要用'tabbar-tab-value
替换(lambda (tab) (buffer-name (tabbar-tab-value tab)))
。 - sdsframe-bufs-mode
时,我需要做一些工作来将所需结果分布到所有框架中,但是您已经帮助我克服了最初的障碍。非常感谢 !!! :) - lawlist