2

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

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

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

4 ответа4

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.

2

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

2

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

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

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 т.д., Будут сгруппированы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .