Буферные группы Emacs/вкладки
Я всегда работаю над несколькими базами кода одновременно. Обычно это внутренняя библиотека, веб-приложение и некоторые службы.
Есть ли способ с Emacs открыть несколько буферов для каждой базы кода, но сгруппированы эти буферы? Как вкладка для каждой базы кода или групп, я могу легко переключаться между ними.
Я проверил tabbar-mode, который не является тем, что я ищу. Я ищу простой способ быстро перейти от работы над одной базой кода к другой. Как сохранение набора окон для каждого проекта и быстрое переключение между ними.
Любые идеи?
Ответы
Ответ 1
Несколько предложений:
-
ibuffer
- это расширенная замена list-buffers
, которую вы можете привязать к C-x C-b на своем месте. Это позволяет фильтровать список буфера по различным критериям, объединять фильтры в группы и упорядочивать группы, как вам угодно; вы также можете сохранить свои фильтры и группы для восстановления позже. Используйте C-h m из буфера ibuffer, чтобы просмотреть все параметры. См. Также: Emacs: помогите мне понять управление файлами/буферами
-
Попробуйте использовать одну из различных экранных библиотек для Emacs, таких как Elscreen или Экран. Я никогда не пытался их опробовать самостоятельно, но я понимаю, что у вас могут быть отдельные списки буферов на каждый экран, который, похоже, подходит для ваших целей.
-
Если вы хотите еще большего разделения, так что когда один проект "активен", буфер из другого (-ов) недоступен, то я не знаю, как это сделать в одном экземпляре Emacs, но в этой ситуации я бы просто начал несколько экземпляров Emacs; по одному для каждого проекта. Emacs достаточно лёгкий на современном оборудовании, что это вполне разумный подход.
Ответ 2
Посмотрите projectile - простую и ненавязчивую библиотеку управления проектами для Emacs. Одна из его особенностей - это точно переключение на буферы из определенного проекта (C-c p b).
Ответ 3
Я использую ibuffer
для этой цели вместе с расширением ibuffer-vc
(доступно через Marmalade); эти группы расширений буферизуются в соответствии с проектом управления версиями, к которому они принадлежат, что является IMO идеальным для программистов способом группирования буферов.
Ответ 4
Я тоже дам очередной выстрел. И есть отличный учебник (часть серии, на самом деле) о том, как эффективно использовать снаряды и шлем:
Изучение крупных проектов с помощью снарядов и снарядов для снарядов и снарядов
helm настолько велик, что я не могу жить без него! Итак, еще одно предложение - прочитать этот учебник:
Пакет в собственной лиге: Шлем
Ответ 5
@Ответ на вопрос правильный: ibuffer - это стандартный способ пойти, смешно BTW, что официальный документ даже не упоминает об этом.
Я лично переназначаю старый (list-buffers)
для него:
(global-set-key (kbd "C-x C-b") 'ibuffer)
Что касается "группировки" части вашего вопроса, вы можете использовать это:
(defvar ibuffer-saved-filter-groups
'(("home"
("emacs-config" (or (filename . ".emacs.d")
(filename . ".emacs")))
("Org" (or (mode . org-mode)
(filename . "OrgMode")))
("Faust" (or (mode . faust-mode)
(filename . "\\.dsp\\'")))
("Help" (or (name . "\*Help\*")
(name . "\*Apropos\*")
(name . "\*info\*"))))))