Emacs: Как по умолчанию переключать только Buffer-menu-files-files - PullRequest
2 голосов
/ 19 октября 2010

В buff-menu+.el (а также в buff-menu.el) есть функция с именем Buffer-menu-toggle-files-only, которая устанавливает переменную Buffer-menu-files-only в t / nil.

При отображении списка буферов я могу переключать его с помощью клавиши T , чтобы предотвратить отображение не-файловых буферов в списке.Я бы хотел, чтобы этот фильтр (только для файлов) был установлен по умолчанию.Как я могу реализовать это в моем init.el файле?

Я попытался:

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

, но когда я затем показываю список буферов, он говорит:

run-hooks: Неверное количество аргументов: # [(arg) "..." [arg Префикс-числовое значение только для буферных файлов-файлов 0 t revert-buffer] 2 578818 "P"], 0

Кто-нибудь может дать мне подсказку?

Ответы [ 3 ]

4 голосов
/ 20 октября 2010

Попробуйте это:

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

Я не использую буферное меню, так что это не проверено.Но это форма, которой следуют все мои мод-хуки, и все они работают.

2 голосов
/ 17 сентября 2013

Это работает и делает именно то, что вам нужно.

(global-set-key (kbd "C-x C-b") 'my-buffer-menu)
(defun my-buffer-menu()
   (interactive)
   (buffer-menu)
   (Buffer-menu-toggle-files-only 1))
2 голосов
/ 21 августа 2011

Предложение режима ловушки должно работать нормально.

Еще один способ сделать это:

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

Кроме того, я предполагаю, что вы уже знаете, что C-u C-x C-b содержит только файловые буферы.

...