23 мая 2007 г.

Tip #2. Быстрое переключение между буферами

Обычно в Emacs'e переключение между буферами производится с помощью сочетания клавиш C-x b, или путем выбора нужного буфера в меню. Однако, при работе с большим количеством файлов, эти методы не совсем удобны. Поэтому, были разработаны пакеты для более удобного переключения между буферами в Emacs'e. Один из таких пакетов - iswitchb, который показывает список буферов, которые соответствуют тому тексту, который вы набираете. Список буферов меняется по мере набора слова или его части, к тому же вы можете набирать любую часть слова, что особенно полезно, если вы имеете много файлов начинающихся с одного префикса. В остальном, iswitchb полностью заменяет стандартные механизмы Emacs. Данный пакет идет в поставке Emacs 22 (текущий CVS), а для предыдуших версий, его можно скачать с emacs-wiki. Настройка пакета тоже проста - надо лишь поместить следующие строки в файл инициализации:
(require 'iswitchb)
(iswitchb-mode 1)
Для того, чтобы не отображались некоторые буфера, их имена можно поместить в список игнорирования, который хранится в переменной iswitchb-buffer-ignore. Вот, например, минимальный список таких буферов:
(add-to-list 'iswitchb-buffer-ignore "*Messages*")
(add-to-list 'iswitchb-buffer-ignore "*Backtrace")
(add-to-list 'iswitchb-buffer-ignore "*Quail Com")
(add-to-list 'iswitchb-buffer-ignore "*Buffer")
(add-to-list 'iswitchb-buffer-ignore "*fsm-debug")
(add-to-list 'iswitchb-buffer-ignore "*Completions")
(add-to-list 'iswitchb-buffer-ignore "^[tT][aA][gG][sS]$")
Для того, чтобы обеспечить кэширование информации, можно использовать пакет filecache, который умеет интегрироваться с iswitchb. Этот пакет также идет в составе Emacs 22. Для его использования поместите в .emacs следующие строки:
(require 'filecache)
(load "iswitchb-fc")
Про другие пакеты, обеспечивающие подобную функциональность, вы можете почитать на Emacs WiKi - в разделе про iswitchb, есть ссылки на них

1 комментарий:

e-yes комментирует...

Для работы с большим количеством открытых буферов есть команда buffer-menu.