Emacs. Пакет Bufler

2025-07-14 · 3 мин. для прочтения

Emacs. Пакет Bufler.

Содержание

1 Общая информация

  • Репозиторий: https://github.com/alphapapa/bufler.el
  • В отличие от ibuffer, который требует ручной настройки групп, Bufler автоматически создаёт иерархию на основе заданных правил.

2 Особенности

  • Автоматическая группировка буферов

    • Буферы распределяются по группам с использованием Lisp-функций, которые можно настраивать под свои нужды.
    • Например, буферы могут группироваться по:
      • директориям файлов;
      • активным режимам (например, org-mode, python-mode);
      • состояниям контроля версий (VC).
  • Динамические рабочие пространства

    • Каждый фрейм Emacs может быть привязан к определённому рабочему пространству (группе буферов).
    • Это позволяет изолировать контексты и быстро переключаться между проектами.
  • Пакет поддерживает вкладки (tab-bar-mode) для отображения рабочих пространств.

  • Гибкие правила группировки

    • Правила задаются через макрос bufler-defgroups, который упрощает создание сложных иерархий.
    • Можно создать вложенную структуру:
      (bufler-defgroups
        ("Projects"
         ("Org" (lambda (buf) (string-match-p "\\.org$" (buffer-file-name buf))))
         ("Code" (lambda (buf) (member (buffer-file-name buf) '(".py" ".js"))))
         ("Temporary" (lambda (buf) (string-prefix-p "*" (buffer-name buf))))))
      

3 Основные команды и режимы

  • Режимы работы:

    • bufler-mode : активирует рабочие пространства для фреймов.
    • bufler-tabs-mode : отображает рабочие пространства в виде вкладок.
  • Команды для работы с буферами:

    • M-x bufler-switch-buffer : переключается между буферами в текущем рабочем пространстве. С префиксом C-u показывает все буферы.
    • M-x bufler-workspace-frame-set : назначает текущее рабочее пространство для фрейма.
    • M-x bufler-workspace-buffer-set : присваивает буферу имя рабочего пространства.

4 Примеры использования

  • Для начала работы достаточно активировать bufler-mode и использовать bufler-switch-buffer.
  • Переключение между проектами
    • Нажмите M-x bufler, затем f, чтобы выбрать рабочее пространство.
    • Используйте C-u C-u M-x bufler-switch-buffer для переключения между проектами.
  • Сохранение состояния рабочих пространств
    • Команды bufler-workspace-save и bufler-workspace-open позволяют сохранять/загружать настройки через пакет burly.

5 Рабочий процесс

  • Запустите Emacs.
  • Активировать bufler-mode.
  • Откройте несколько буферов, найдите несколько файлов и т. д.
  • Когда вам нужно переключить буферы, используйте M-x bufler-switch-buffer
    • Буферы представлены группами с их «контурными путями», что упрощает поиск нужного буфера, поскольку они организованы по проекту, каталогу, режиму и т. д.
  • Если вы хотите сосредоточиться на буферах определенной группы:
    • C-u C-u M-x bufler-switch-buffer RET и выберите буфер;
    • или M-x bufler-workspace-frame-set RET и выберите рабочее пространство;
    • или M-x bufler RET и нажмите f, чтобы сфокусировать текущий фрейм на рабочем пространстве, или F чтобы открыть новый фрейм, ориентированный на рабочее пространство.
  • В следующий раз, когда вы вызовите bufler-switch-buffer в этом фрейме, он будет предлагать только буферы из группы буферов этого фрейма, что упрощает поиск буферов, связанных с текущим проектом.
  • Когда вам нужно переключиться на буфер в другой группе, не меняя рабочее пространство фрейма, используйте C-u M-x bufler-switch-buffer для выбора из всех буферов во всех группах.
  • Когда вам нужно уничтожить или сохранить несколько буферов одновременно, используйте bufler-list, поместите курсор на группу, которую вы хотите убить или сохранить, и нажмите k или s.
  • Если вы хотите увидеть, какие буферы не сохранены (отмечены значком *) или не зафиксированы (обозначается edited) изменения, вы можете просмотреть список буферов (включить bufler-vc-state для отображения состояния VC для каждого буфера; по умолчанию эта функция отключена, поскольку получение актуальной информации о состоянии VC буфера может быть медленным).

6 Сочетания клавиш для буфера Bufler

  • Используйте C-h m, чтобы получить самый актуальный список привязок.
  • ? Показать привязку клавиш.
  • 14 : переключение разделов.
  • M-1M-4 : переключение разделов верхнего уровня.
  • RET : переключиться на буфер.
  • SPC : предпросмотр буфера, сохраняя фокус на списке буферов.
  • g : обновить список буферов (с префиксом, принудительно обновить состояние VC буферов и группировку).
  • f : установить рабочую область текущего фрейма на группу в точке (с префиксом, не установлено).
  • F : создайте новый фрейм, рабочим пространством которого будет группа в точке.
  • N : добавить буферы в именованное рабочее пространство (с префиксом, удалить из него).
  • k : уничтожить буферы.
  • s : Сохраняйте буферы.
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.