Группировка буферов Emacs

2

Можно ли создать группы буферов в Emacs, чтобы лучше организовать большое количество буферов?

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

Группировка (или маркировка) буферов произвольным образом (необязательно по ветви исходного кода) также может быть полезной.

луч
источник
В знак того, что я не одобряю, как представляется, обычное в частичках SU-I поведение, когда я принимаю ответы только в том случае, если они идеально вписываются в систему (например, послепродажное обслуживание). ответы будут приняты), я подожду, пока у этого интересного вопроса не будет принятого ответа, чтобы проголосовать.
Никана Рекламикс

Ответы:

2

Точное соответствие вашим потребностям - это режим перспективы ( https://github.com/nex3/perspective-el ). Это в точности соответствует случаю, когда ваше описание похоже на концепцию рабочих пространств в GNOME и KDE. Этот режим прекрасно работает с режимами projectile и helm-mode, которые улучшают ваши emacs для лучшей обработки проектов и соответственно более удобного поиска по ним.

Если вы не хотите самостоятельно настраивать эти режимы, я предлагаю вам установить прелюдию для emacs и простую перспективу установки вместе с ней. Вы можете проверить мою конфигурацию emacs ( https://github.com/ksinkar/prelude ), чтобы увидеть, как я это сделал.

ksinkar
источник
3

Я думаю, что вы, возможно, ищете что-то вроде ibuffer (встроено в самые последние версии). В основном это похоже на буферы.

M-x ibuffer
% n *.py  # marks all buffers whose name ends with .py
t         # inverts the marked buffers. Those which had marks, are unmarked and vice versa.
k         # removed marked buffers from the list.

Теперь у вас должен быть буфер, в котором перечислены все файлы, оканчивающиеся на * .py.

Для получения дополнительной информации вы можете C-h m(справка режима просмотра), когда в режиме ibuffer.

Джастин Абрамс
источник
Если взглянуть больше на ibuffer, кажется, что он поддерживает именованные группы фильтров. Если вы добавите информацию об этом в свой ответ, я приму это. Спасибо!
Рэй
2

Я бы порекомендовал попробовать elscreen: http://www.morishima.net/~naoto/software/elscreen/ По сути, он позволяет создавать группы буферов и переключаться между ними, как если бы они были вкладками в веб-браузере. Одна из моих любимых функций elscreen - разделение кадров может быть различным в каждой группе, что может быть очень полезно при работе над различными задачами.

Мэтт Пэйти
источник
Это, безусловно, хороший инструмент, но я бы не советовал его по этому вопросу, так как он не подходит для многих буферов, и любую группу очень легко потерять, когда что-то делает C-x 1. По сути, все дело в отображении, нет никакого базового сохраненного состояния, афаик.
Никана Рекламикс
0

Также используя iBufferвы можете добавить следующее к вашему.emacs

(setq ibuffer-saved-filter-groups
      (quote (("default"
               ("Org" ;; all org-related buffers
                (mode . org-mode))
               ("Programming" ;; prog stuff not already in MyProjectX
                (or
                 (mode . c-mode)
                 (mode . c++-mode)
                 (mode . perl-mode)
                 (mode . python-mode)
                 (mode . emacs-lisp-mode)))
               ("LaTeX"
                (mode . latex-mode))
               ("Directories"
                (mode . dired-mode))
               ))))

Этот пример сгруппирует буферы orgвместе. Буферы , которые c-mode, c++-mode, и pels-modeт.д. , будут сгруппированы.

Дрор
источник