我正在尝试创建一个函数来修改框架的缓冲区列表,方法是将其替换为显示在同一框架上的 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-parameter 'nil 'buffer-list)
返回缓冲区列表,而不是它们的名称;因此你可能想要替换
(lambda (tab) (buffer-name (tabbar-tab-value tab)))
使用'tabbar-tab-value
关于emacs - 如何使用修改帧参数修改缓冲区列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094828/