Эссе про переход с Doom на ванильный Emacs
Итак, я перешел с Doom на ванильный Emacs и вот уже с неделю работаю в новой конфигурации. Не думал, что так случится, но… подумывал. Зачем я это сделал? Возможно, хотел поиграться с последними версиями Emacs, которые Doom не успевает поддерживать. Вот, рассуждаю, запилю быстренько ванильное MVP и погоняю тридцатку.
Быстренько?! Фиг там было! Пару недель только приводил редактор к привычному, интуитивно понятному поведению, которое, естественно, ожидал видеть из коробки. И да, подглядывал в код Doom’а, ибо местами, копаясь в доках и инете, тратил кучу времени, которого и так немного. А ведь еще надо перетащить все, что насобирал за пару лет работы.
Что ж, с уважением снимаю шляпу перед создателем Doom’а! Сколько же там блох вычищено, фишечек найдено, прочего всякого с фиг-знает-чего на ноги поставлено и удобного сделано!
При переходе с Doom я осознал, на сколько же ванильный Emacs с пакетами недружелюбен к новичкам. То есть, как бы не секрет был, но чтоб настолько! Непрограммеру даже не порекомендую его - потыкает и больше не вернется. А ведь новички - это будущее. Времена “освоишь, деваться тебе некуда” давно прошли. Даже большинство программеров со стажем не поймут: зачем им это “счастье”? - ведь давно все есть для работы. Слова “все можно настроить под себя”, “org-mode” и т.п. - это лишь пустой звук, пока сам не пропустишь через руки. Потом, конечно, Emacs становится добрым другом, но это потом. 
И вот тут-то независимые, но похожие проекты Doom и Spacemacs приходят на помощь не только новичкам, но и самому редактору Emacs. Оба нащупали ту самую структуру конфигурации (модули в Doom и слои в Spacemacs), которая поднимает пользование редактором на качественный уровень и при этом не ограничивает пользователя в создании своих собственных настроек.
Отдельного внимания заслуживают те самые модули/слои. В них есть зачастую все, что нужно разработчику, редактору, просто специалисту под их текущую работу. Нужна поддержка языка программирования с LSP? аналог Obsidian? - пожалуйста!: просто снимаем комментарий с соответствующего модуля в init.el, говорим “sync” и оно работает. А еще к модулям написаны достаточно подробные документации прямо в редакторе. Ставим курсор на название модуля в init.el, нажимаем “K” - читаем.
А есть еще свой Doom’овский DWIM (Do What I Mean), который просто работает через весь редактор, где ни окажись. Считаю, что именно в таком направлении и должен развиваться Emacs, если хочет новых людей в проект.
Всем начинающим рекомендую начинать с Doom. Продолжающим рекомендую Doom тоже. С него можно вообще не уходить, эффективность работы от этого не пострадает. Чем дольше работаешь с Doom, тем больше понимаешь, на что на самом деле способен Emacs, заслуженный чемпион по кастомизации. Ну и всегда можно допилить что-то свое, Doom этому, в целом, не препятствует, что, на мой взгляд, очень здорово!
Вернусь к началу, к своему переходу с Doom на ванилу. Откатываться назад уже не буду: во-первых, проделана работа, во-вторых, мой личный вызов принят, а, в-третьих, чувствую себя свободней. Все, что понадобится, можно “доработать напильником”.
В новой конфигурации сохранил почти все телодвижения из прошлой Doom’овской настройки, так что работаю в Emacs так же, как и раньше. Допиливаю неровности по мере их обнаружения. 