Emacs buffer-menu: как показать только файл + буферы Dired - PullRequest
5 голосов
/ 27 октября 2011

Я широко использую меню буферов для переключения между буферами.Я хочу перечислить буферы, которые являются файлами или Dired.Как я могу это сделать?

Ответы [ 3 ]

6 голосов
/ 27 октября 2011

Вы можете использовать ibuffer

Там вы можете определить свои группы буферов.Вы можете помечать буферы, использовать фильтрацию и сортировку, выполнять поиск / замену в помеченных буферах и другие полезные вещи.

Для вашего случая просто положить в ловушку (ibuffer-filter-by-filename ".")

Вот примермой .emacs.

(require 'ibuffer)

(setq ibuffer-saved-filter-groups
      (quote (("default"
               ("dired" (mode . dired-mode))
               ("java" (mode . java-mode))
               ("org" (mode . org-mode))
               ("sql" (mode . sql-mode))
               ("xml" (mode . nxml-mode))))))    

(setq ibuffer-show-empty-filter-groups nil)

(add-hook 'ibuffer-mode-hook 
 (lambda () 
  (ibuffer-switch-to-saved-filter-groups "default")
  (ibuffer-filter-by-filename "."))) ;; to show only dired and files buffers

РЕДАКТИРОВАТЬ.Если вы хотите отфильтровать временные буферы (имя которых начинается с *), вы можете установить следующий фильтр (регулярное выражение)

(ibuffer-filter-by-name "^[^*]")

Он говорит, что имя буфера должно начинаться с любого символа, кроме *.

2 голосов
/ 28 октября 2011

Меню буфера + имеет то, что вы хотите.Он обрабатывает буферы Dired как файловые буферы, поэтому при использовании Cu Cx Cb (* list-buffers или buffer-menu) вы получаете только Dired и файловые буферы.

0 голосов
/ 27 октября 2011

Вызов buffer-menu с префиксным аргументом (C-u M-x buffer-menu) выведет список только тех буферов, которые посещают файлы.К сожалению, я не вижу простого способа включить dired в этот список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...