Emacs буферные группы / вкладки - PullRequest
16 голосов
/ 02 апреля 2012

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

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

Я выбрал tabbar-mode , что не то, что я ищу.Я ищу простой способ быстро переключиться с работы на одной кодовой базе на другую.Как сохранение набора окон для каждого проекта и быстрое переключение между ними.

Есть идеи?

Ответы [ 5 ]

8 голосов
/ 02 апреля 2012

Несколько предложений:

  1. ibuffer - это расширенная замена для list-buffers, которую можно связать с C-x C-b на его месте. Это позволяет фильтровать список буферов по различным критериям, объединять фильтры в группы и упорядочивать группы по своему усмотрению; Вы также можете сохранить свои фильтры и группы для восстановления позже. Используйте C-h m из буфера ibuffer, чтобы увидеть все параметры. Смотрите также: Emacs: помогите мне разобраться с управлением файлами / буфером

  2. Попробуйте одну из различных экраноподобных библиотек для Emacs, например, Elscreen или Escreen . Я никогда не удосужился испытать их сам, но я понял, что вы можете иметь отдельные списки буферов на экран, что, похоже, подойдет вашим целям.

  3. Если вы хотите еще большего разделения, например, когда один проект «активен», буфер из другого (-ых) недоступен, то я не знаю, как это сделать в одном случае. Emacs, но в этой ситуации я бы просто запустил несколько экземпляров Emacs; по одному на каждый проект. Emacs достаточно легок на современном оборудовании, поэтому это вполне разумный подход.

6 голосов
/ 02 апреля 2012

Взгляните на projectile - простую и ненавязчивую библиотеку управления проектами для Emacs.Одной из его особенностей является точное переключение на буферы из определенного проекта ( Cc pb ).

5 голосов
/ 02 апреля 2012

Я использую ibuffer для этой цели вместе с моим ibuffer-vc расширением (доступно через Мармелад );это расширение группирует буферы в соответствии с проектом контроля версий, к которому они принадлежат, что является IMO идеальным ориентированным на программиста способом группировки буферов.

0 голосов
/ 17 августа 2017

@ Phils ответ правильный: ibuffer - это стандартный путь, забавно, кстати, что официальный документ даже не упоминает об этом .

Я лично переназначаю старый (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\*"))))))
0 голосов
/ 05 января 2017

Я тоже отдам меткому снаряду.И здесь есть превосходное руководство (фактически, часть серии) о том, как эффективно использовать снаряд и руль:

Изучение крупных проектов с Projectile и Helm Projectile

Шлем настолько хорош, что я не могу жить без него!Еще одно предложение - прочитать этот урок:

Пакет в собственной лиге: Helm

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