Emacs - это гигантский и древний текстовый редактор / IDE / операционная система / религия, имеющий чрезвычайно преданную базу пользователей и непрерывно развивающийся 44 года.

Поскольку модульность и настраиваемость являются основными достоинствами среды Emacs, вы можете представить, сколько надстроек было создано и реализовано за десятилетия. Практически все, что вы можете себе представить, делая на своем компьютере, можно выполнить из Emacs.

По мере того, как люди становятся все более и более удобными в использовании Emacs, их файлы конфигурации становятся все более и более подробными и сложными. У двух пользователей не будет одинаковых настроек, и в большинстве случаев отдельные сборки не будут похожи друг на друга.

Существуют даже очень популярные пользовательские конфигурации, которые действуют как крупномасштабные суперсеты поверх ванильных emacs и полностью меняют его поведение и внешний вид, такие как Spacemacs, Doom Emacs и Prelude.

Если вы похожи на меня и все время одержимы тем, чтобы пробовать новые игрушки в ущерб своей производительности, то эксперименты с множеством этих различных конфигураций могут показаться вам привлекательными. Проблема в том, что Emacs - это действительно большая часть программного обеспечения, и каждая установка имеет особую конфигурацию, файлы которой привязаны к домашнему каталогу вашего пользователя. В основном вам нужно вручную переименовывать разные файлы, чтобы переключиться на новые конфигурации, или просто полностью перезаписывать их каждый раз, когда вам хочется начать все сначала или попробовать что-то новое. Управление всеми этими файлами и их резервное копирование - огромная боль.

Вот где на помощь приходит Chemacs! Chemacs позволяет вам настроить несколько конфигураций для одной учетной записи пользователя без каких-либо конфликтов или ручного перемещения настроек! Например, у меня есть конфигурация Spacemacs по умолчанию, конфигурация Doom и настраиваемая ванильная конфигурация EmacsPlus, все они находятся в одном каталоге, и я могу запустить любой из них, который захочу, ничего не нарушая.

Вот все, что вам нужно сделать, чтобы все заработало (Примечание. Эти действия будут работать в MacOS или Linux, но не в Windows. Инструкции для Windows см. В файле readme Chemacs.)

  1. Установите Emacs на свой компьютер. Есть много способов сделать это, но я использовал Homebrew для установки Emacs Plus, поскольку его дополнительные функции помогают в совместимости со Spacemacs.
brew tap d12frosted/emacs-plus
brew install emacs-plus

2. Переместите или переименуйте файл по умолчанию .emacs в вашу домашнюю папку.

3. Клонируйте химикаты на вашу машину. Я помещаю его в новый каталог «Emacs» в моей домашней папке, где я храню все конфигурации emacs.

git clone https://github.com/plexus/chemacs.git

4. Запустите сценарий установки для chemacs, который связывает свой собственный файл .emacs с вашим домашним каталогом для автоматического чтения emacs.

cd chemacs
./install.sh

5. Теперь в вашем домашнем каталоге есть .emacs-profiles.el файл Emacs-Lisp, который позволит вам указывать на ваши различные конфигурации.

Первый аргумент - это желаемое имя конфигурации, например “MediumEmacs”, которое вы вызовете, запустив emacs --with-profile MediumEmacs в командной строке.

Следующим идет user-emacs-directory, который затем указывает путь к тому месту, где находятся ваши файлы конфигурации, например "/Users/Frank/Emacs/MediumEmacs.d".

Итак, моя полная строка Medium Emacs в файле .el будет выглядеть так:

("MediumEmacs" . ((user-emacs-directory . "/Users/Frank/Emacs/MediumEmacs.d")

с папкой MediumEmacs.d, содержащей мой файл init.el и любые другие конфигурации, которые могут мне понадобиться для этого профиля.

Если вы используете крупномасштабную конфигурацию с собственным каталогом, например Spacemacs и ее spacemacs.d настройку, вам также необходимо указать здесь как переменную среды. Этот каталог также можно переместить в любое место для хранения химикатов. прямо как пользовательские конфиги.

Мой профиль emacs по умолчанию (который не требует запуска флага --with-profile) настроен как:

(("default" . ((user-emacs-directory . "/Users/Frank/Emacs/Spacemacs/.emacs.d")
  (env . (("SPACEMACSDIR" . "/Users/Frank/Emacs/Spacemacs/.spacemacs.d")))))

Используя Chemacs, я могу добавить любое количество конфигураций в этот файл, и все они могут быть легко запущены прямо из командной строки, никоим образом не мешая друг другу!

Надеюсь, это поможет любому новичку в Emacs начать пробовать другие причудливые конфигурации Emacs, не разрушая свои любимые пользовательские сборки!