Все необходимые пакеты устанавливаются автоматически при запуске редактора. Для управления конфигурацией используются возможности пакета use-package.
В этой конфигурации используются (в алфавитном порядке):
Встроенный пакет для использования аббревиатур — последовательностей, автоматически заменяемых на более длинные слова и предложения.
Пакет для управления окнами Emacs. Я использую его для быстрого перехода между окнами с помощью сочетания Alt+o.
Пакет для поддержки AsciiDoc.
Принудительное выравнивание кода. Особенно полезен этот пакет для работы с init.el
.
Поддержка синтаксиса для конфигураций Ansible. Дополнительный режим, расширяющий возможности yaml-mode
.
Обёртки над функциями Emacs, используемыми для привязки клавиш.
Встроенный пакет, используемый для проверки документации пакетов Emacs Lisp.
Автодополнение. Используется в основном при работе с текстами программ.
Встроенный пакет для работы с конфигурационными файлами форматов INI и CONF.
Встроенный пакет для работы с файлами CSS.
Встроенный пакет для сохранение состояния Emacs между сессиями.
Документация Emacs: Saving Emacs Sessions
Подсветка незафиксированных изменений.
Встроенный пакет для управления файлами.
Документация Emacs: Dired, the Directory Editor
Встроенный пакет для отображения номеров строк.
Поддержка конфигурационных файлов Docker.
Строка статуса, используемая проектом DooM EMACS. Выглядит отлично, поддерживает иконки и тонкую настройку внешнего вида.
Темы из проекта DooM EMACS. Мне больше всего нравится monokai-pro
.
Позволяет открыть буфер с фрагментом кода и нужным основным режимом во время работы с другим буфером. Например, код на Python, вставленный в Markdown-файл, откроется с основным режимом anaconda-mode
и всеми его преимуществами: автодополнение, подсветка синтаксиса и т. д. Чтобы открыть фрагмент кода в другом буфере, нужно нажать [C-c '], чтобы сохранить изменения — [C-c C-c], закрыть буфер без сохранения изменений — [C-c C-k].
Поддержка EditoConfig. Использование этой штуки задаёт правила форматирования текста на уровне проекта: TAB vs SPACES, типы концов строк и т. д.
Встроенный пакет для автоматической вставки парной скобки.
Автоматическая проверка синтаксиса с помощью статических анализаторов. Отличная замена Flymake.
Форматирование кода с помощью внешних средств, например, standard
для JavaScript, black
для Python и т. д.
Расширенная поддержка языка программирования JavaScript. Обладает значительно большими возможностями, чем встроенный режим javascript-mode
.
Текстово-графичекий интерфейс для работы с системой контроля версий Git.
Поддержка мультикурсорности. Для редактирования выделенных строк нужно нажать [C-S-c C-Sc].
Работа с проектами. Аналог встроенного пакета project.el
, предоставляющий дополнительные возможности.
Вспыхивание строки, к которой перемещён курсор. Помогает лучше ориентироваться среди множества открытых фреймов и окон.
Базовая поддержка языка программирования Python.
Парные скобки отображаются одним цветом.
Поддержка синтаксиса конфигурационных файлов Terraform.
Дерево файлов в отдельном окне. Отличная замена устаревшему neotree
.
Замена стандартной системы Undo/Redo, используемой в EMACS, на более удобную.
Поддержка конфигурационных файлов Vagrant.
Режим работы с Web-файлами: HTML, CSS.
Показывает подсказки с комбинациями клавиш, привязанным к командам.
Встроенный пакет, отображающий невидимые символы: пробелы, табуляции, переходы на новую строку и т. п.
Старый, но очень полезный пакет: позволяет работать с большими файлами так, будто включен режим удаления висячих пробелов, но затрагивает только изменённые строки.
Поддержка синтаксиса языка разметки YAML.
Поддержка сниппетов: развёртывания небольших фрагментов текста в заранее подготовленные большие блоки.
Набор сниппетов для yasnippet
.