Emacs. Пакет embark
2026-08-16
·
2 мин. для прочтения
Emacs. Пакет embark
Содержание
1 Общая информация
- Репозиторий: https://github.com/oantolin/embark
- Контекстное меню, управляемое с клавиатуры.
- Позволяет выполнять действия над объектом под курсором или над выбранными кандидатами в минибуфере.
2 Основные понятия
2.1 Понятие цели
В основе Embark лежит понятие цели (target) — объекта, на котором вы хотите выполнить действие.
Цель определяется автоматически в зависимости от контекста:
- минибуфер : целью является текущий верхний кандидат автодополнения;
- буфере
Completions: целью является элемент автодополнения под курсором; - обычный буфер : целью может быть активная область (регион), или, если её нет, файл, символ, URL, s-выражение или функция под курсором.
Если в одном месте находится несколько целей (например, и символ, и URL), можно циклически переключаться между ними, повторяя нажатие клавиши для вызова
embark-act.
2.2 Команда embark-act
- Основная команда пакета —
embark-act. - Обычно привязывается к клавише (
C-.). - После её вызова Embark действует как префиксная клавиша: нажимаете одну или две буквы, чтобы выполнить соответствующее действие.
3 Множественное выделение
- Множественное выделение работает через команды
embark-selectиembark-act-all.
3.1 Рабочий процесс
- Вызовите
embark-act(обычно привязана кC-.) на том элементе, который хотите выделить. - Нажмите
SPC(пробел).- Это запустит действие
embark-select, которое добавит текущий элемент в набор выделенных или снимет с него выделение, если оно уже было.
- Это запустит действие
- Повторите шаги 1-2 для всех элементов, которые нужно выделить.
- Когда все нужные элементы выбраны, снова вызовите
embark-act(C-.) дважды (C-. C-.) или в появившемся меню действий нажмитеA.- Это запустит команду
embark-act-all.
- Это запустит команду
- Выберите действие (например,
dдля удаления,cдля копирования), которое будет применено ко всем выделенным элементам одновременно.
3.2 Контексты
- Эта возможность работает в разных контекстах:
- минибуфер : во время работы с любыми командами завершения (например,
find-file,switch-to-buffer).- Позволяет выбрать несколько файлов или буферов для массовой операции.
- обычныq буфер : например, чтобы выделить несколько ссылок, символов или участков текста, разбросанных по файлу.
- буфер Embark Collect : там интерфейс напоминает Dired, и вы можете отмечать элементы пробелом.
- минибуфер : во время работы с любыми командами завершения (например,
3.3 Дополнительные возможности
- Снять всё выделение.
- Выполните
embark-act-all(например,C-. C-.) и в качестве действия выберитеembark-select(пробел). - Это снимет выделение со всех выбранных элементов.
- Выполните
- Выделить все текущие кандидаты
- Находясь в минибуфере, когда ничего не выделено, выполните
embark-act-allи выберите действиеembark-select. - Это выделит все отфильтрованные в данный момент кандидаты.
- Находясь в минибуфере, когда ничего не выделено, выполните
- Визуальная обратная подсказка
- Когда что-то выделено, в mode-line обычно отображается количество выбранных элементов.
