2010-10-19 130 views
2

buff-menu+.el(也包括buff-menu.el)有一个名为Buffer-menu-toggle-files-only功能,设置可变Buffer-menu-files-onlyt/nilEmacs的:如何切换缓冲区菜单 - 文件 - 默认情况下只

当显示缓冲器列表,我可以与键Ť切换此所以能够防止非文件缓冲器从列表中被显示。我想要默认设置此筛选器(仅限文件)。我怎么能在我的​​文件中实现这个?

我想:

(add-hook 'buffer-menu-mode-hook 'Buffer-menu-toggle-files-only 1) 

但是当我然后显示缓冲区列表,它说:

运行钩:错误的参数个数:#[(ARG)” ... “[arg缓冲区菜单文件只前缀数字值0 t恢复缓冲区] 2 578818”P“],0

任何人都可以给我一个提示吗?

回答

4

试试这个:

(add-hook 'buffer-menu-mode-hook 
      '(lambda() 
      (Buffer-menu-toggle-files-only 1))) 

我不使用缓冲区菜单,所以这是未经测试。但是,这是我所有模式钩子所遵循的形式,它们都有效。

+0

没有为我工作(GNU emacs 25.1.1)。我在'* Messages *'中收到了一条消息,认为该选项已被更改,但仍显示非文件。 – edam 2017-02-27 14:48:01

2

模式钩建议应该正常工作。

另一种方式去是这样的:

 
    (defun my-list-buffers() 
     (interactive) 
     (list-buffers t)) 

另外,我想你已经知道C-ùC-X C-B只列出文件缓冲区。

2

这个工程,并使你正是你所需要的。

(global-set-key (kbd "C-x C-b") 'my-buffer-menu) 
(defun my-buffer-menu() 
    (interactive) 
    (buffer-menu) 
    (Buffer-menu-toggle-files-only 1)) 
+0

你也可以直接调用'(buffer-menu 1)',而不是在之后进行切换。 – edam 2017-02-27 14:45:10

+0

此外,调用'(buffer-menu-other-window 1)'模仿将窗口分割为缓冲区的默认行为。 – edam 2017-02-27 14:46:22

相关问题