Emacs е гигантски и древен текстов редактор/IDE/операционна система/религия, която има изключително специализирана потребителска база и е в процес на непрекъснато развитие от 44 години.

Тъй като модулността и възможностите за персонализиране са основната черта на средата на Emacs, можете да си представите колко много добавки са създадени и внедрени през десетилетията. Почти всичко, което можете да си представите да правите на вашия компютър, може да бъде постигнато от Emacs.

Тъй като хората стават все по-удобни при използването на Emacs, техните конфигурационни файлове стават все по-подробни и сложни. Никой двама потребители няма да имат една и съща настройка и в повечето случаи отделните компилации няма да приличат една на друга.

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

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

„Тук се намесва Chemacs“! Chemacs ви позволява да настроите множество конфигурации на един потребителски акаунт, без никакви конфликти или ръчно преместване на настройки! Например, имам моята конфигурация по подразбиране на Spacemacs, конфигурация на Doom и персонализирана конфигурация на EmacsPlus, всички пребиваващи в една директория, и мога да стартирам всяка от тях, която искам, без да счупя нищо.

Ето всичко, което трябва да направите, за да работи това (Забележка: Тези стъпки ще работят на MacOS или Linux, не на Windows. Вижте Chemacs readme за инструкции за Windows.)

  1. Инсталирайте Emacs на вашия компютър. Има много начини да направите това, но аз използвах Homebrew, за да инсталирам Emacs Plus, тъй като неговите допълнителни функции помагат за съвместимост със Spacemacs.
brew tap d12frosted/emacs-plus
brew install emacs-plus

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

3. Клонирайте chemacs на вашата машина. Поставих го в нова директория „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 настройка, трябва да посочите това като променлива на средата и тук. Тази директория също може да бъде преместена където пожелаете за chemacs. точно като потребителските конфигурации.

Моят профил в emacs по подразбиране (който не изисква флага --with-profile за работа) е настроен като:

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

Използвайки Chemacs, мога да добавя произволен брой конфигурации към този файл и всички те могат да бъдат стартирани лесно направо от командния ред, без да си пречат по никакъв начин!

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