emacs - 如何使用修改帧参数修改缓冲区列表

标签 emacs elisp

我正在尝试创建一个函数来修改框架的缓冲区列表,方法是将其替换为显示在同一框架上的 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/

相关文章:

javascript - 如何将 "external"文本文件打包到 elisp 模块中?

c - 为 C 结构定义 gdb 打印函数

emacs - 如何将值固定在模型线的右侧?

Emacs Lisp 共享结构和共享链接

emacs - 在 emacs 中,如何更改默认的 so ctrl-c 复制和 ctrl-v 粘贴?

emacs - 如何转义双引号?

SQLite 和 elisp?

Emacs align-regexp on = 但不是 ==

c# - 让 csharp-mode Emacs 语法突出显示工作

Emacs:如何为非标准文件扩展名使用主要模式