Doom emacs что это

Обновлено: 04.07.2024

Предложения достаточно скучные и местами нелепые. Всё сводится примерно к этому:

И так далее. Также серьёзно рассматривается Electron, но «but it turns out to have «freedom issues».

Единственное внятное предложение — это введение «starter kit», с которым при первом запуске, спрашивая пользователя, нуб ли он, при положительном ответе загружался бы более дружелюбный конфиг. Скорее всего, намного более скромного масштаба, чем тот же Doom Emacs или Spacemacs, но хотя бы что-то.

База пользователей Emacs — 3-5% (Stack Overflow Survey), и обсуждается, ради кого стараться: уже существующих пользователей или потенциальных новых. Консенсуса нет.

Emacs потенциально RIP? В нём и на нём есть хорошие инструменты, но без фреймворка сверху, типа Doom, пользоваться им трудно.

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

⚠️ Doom Emacs won't be participating in Hacktoberfest 2021. I'm not in the best of health, my hands are already full with its current PR load, and large sections of the project are undergoing a rewrite where I'm not accepting PRs, such as our docs (a popular target for hacktoberfesters) and CLI.

Doom Emacs Screenshot

Table of Contents


It is a story as old as time. A stubborn, shell-dwelling, and melodramatic vimmer—envious of the features of modern text editors—spirals into despair before he succumbs to the dark side. This is his config.

Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite operating system.

Its design is guided by these mantras:

  • Gotta go fast. Startup and run-time performance are priorities. Doom goes beyond by modifying packages to be snappier and load lazier.
  • Close to metal. There's less between you and vanilla Emacs by design. That's less to grok and less to work around when you tinker. Internals ought to be written as if reading them were part of Doom's UX, and it is!
  • Opinionated, but not stubborn. Doom is about reasonable defaults and curated opinions, but use as little or as much of it as you like.
  • Your system, your rules. You know better. At least, Doom hopes so! It won't automatically install system dependencies (and will force plugins not to either). Rely on doom doctor to tell you what's missing.
  • Nix/Guix is a great idea! The Emacs ecosystem is temperamental. Things break and they break often. Disaster recovery should be a priority! Doom's package management should be declarative and your private config reproducible, and comes with a means to roll back releases and updates (still a WIP).

Check out the FAQ for answers to common questions about the project.

  • Minimalistic good looks inspired by modern editors.
  • Curated and sane defaults for many packages, (major) OSes, and Emacs itself.
  • A modular organizational structure for separating concerns in your config.
  • A standard library designed to simplify your elisp bike shedding.
  • A declarative package management system (powered by straight.el) with a command line interface. Install packages from anywhere, not just (M)ELPA, and pin them to any commit.
  • Optional vim emulation powered by evil-mode, including ports of popular vim plugins like vim-sneak, vim-easymotion, vim-unimpaired and more!
  • Opt-in LSP integration for many languages, using lsp-mode or eglot
  • Support for many programming languages. Includes syntax highlighting, linters/checker integration, inline code evaluation, code completion (where possible), REPLs, documentation lookups, snippets, and more!
  • Support for many tools, like docker, pass, ansible, terraform, and more.
  • A Spacemacs-esque keybinding scheme, centered around leader and localleader prefix keys ( SPC and SPC m for evil users, C-c and C-c l for vanilla users).
  • A rule-based popup manager to control how temporary buffers are displayed (and disposed of).
  • Per-file indentation style detection and editorconfig integration. Let someone else argue about tabs vs spaces.
  • Project-management tools and framework-specific minor modes with their own snippets libraries.
  • Project search (and replace) utilities, powered by ripgrep and ivy or helm.
  • Isolated and persistent workspaces (also substitutes for vim tabs).
  • Support for Chinese and Japanese input systems.
  • Save a snapshot of your shell environment to a file for Emacs to load at startup. No more struggling to get Emacs to inherit your PATH , among other things.
  • Git 2.23+
  • Emacs 27.1+ (27.2 is recommended, or native-comp). 11.0+
  • GNU find
  • OPTIONAL:fd 7.3.0+ (improves file indexing performance for some commands)

Doom is comprised of

150 optional modules, some of which may have additional dependencies. Visit their documentation or run bin/doom doctor to check for any that you may have missed.

Then read our Getting Started guide to be walked through installing, configuring and maintaining Doom Emacs.

It's a good idea to add

/.emacs.d/bin to your PATH ! Other bin/doom commands you should know about:

  • doom sync to synchronize your private config with Doom by installing missing packages, removing orphaned packages, and regenerating caches. Run this whenever you modify your private init.el or packages.el , or install/remove an Emacs package through your OS package manager (e.g. mu4e or agda).
  • doom upgrade to update Doom to the latest release & all installed packages.
  • doom doctor to diagnose common issues with your system and config.
  • doom env to dump a snapshot of your shell environment to a file that Doom will load at startup. This allows Emacs to inherit your PATH , among other things.
  • doom build to recompile all installed packages (use this if you up/downgrade Emacs).

Doom is an active and ongoing project. To make that development more transparent, its roadmap (and other concerns) are published across three github project boards and a newsletter:

    : roughly outlines our goals between release milestones and their progress. : lists plugins we are watching and considering for inclusion, and what their status for inclusion is. Please consult this list before requesting new packages/features. : lists issues that originate from elsewhere, and whether or not we have local workarounds or temporary fixes for them.
  • Doom's newsletter (not finished) will contain changelogs in between releases.

Emacs is no journey of a mere thousand miles. You will run into problems and mysterious errors. When you do, here are some places you can look for help:

    covers many use cases.
      covers how to configure Doom and its packages. covers how to install and disable packages. explains the bin/doom script's most important commands. lists some common configuration mistakes new users make, when migrating a config from another distro or their own. shows you how to add your own themes to your private config. shows you how to change the default font.
    • Your issue may be documented in the FAQ.
    • For functions: SPC h f or C-h f
    • For variables: SPC h v or C-h v
    • For a keybind: SPC h k or C-h k
    • To search available keybinds: SPC h b b or C-h b b

    Doom is a labor of love and incurable madness, but I'm only one guy. Doom wouldn't be where it is today without your help. I welcome contributions of any kind!

    Evil Mode

    EVIL расшифровывается как Еxtensible VI Layer для Emacs. Это, очевидно, большая спорная тема, отходящая от сценария использования Emacs пользователем-пуристом. Честно говоря, такого сценария нет. По-моему, сила Emacs, в основном, происходит от возможности превратить его во что угодно. Я вырос, когда не было ничего, кроме vi, использовался он мной совсем немного, но я неплохо справлялся.

    «Одобрено вашим ортопедом»

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

    Активируем Evil Mode:

    Doom-themes

    Здесь речь пойдёт об эстетике, а это вещь субъективная. Так что если Вас и так все устраивает — листайте дальше, но если Вы впечатлены изображениями выше, то эта информация для Вас.
    Doom Themes помогли мне сделать внешний вид редактора современнее. Время от времени цвета навевали на меня тоску (минутка психоанализа), потому я начал искать«ту самую тему» для Emacs. Я долго пользоваться zenburn, но потом осознал, что мне действительно нравится контрастный шрифт, но чуть менее кричащий и резкий. Обратите внимание на Doom Themes, в особенности на doom-molokai, которая очень напоминает современную Atom IDE. Минимальная необходимая конфигурация представлена ниже. Я пользуюсь её модифицированной версией, которую стащил с просторов Интернета.

    Чтение почты в Emacs с MU4E

    Заслуживает отдельного поста, так как требует нетривиальной конфигурации. По крайней мере, в моем случае. Недостаток почтовых клиентов для Emacs меня сильно огорчал в своё время (Gnus, прости). По-видимому, я не был в этом одинок, и кто-то ещё, к счастью, более сообразительный и опытный чем я, восполнил этот пробел. mu4e, наряду с offlineimap стали для меня решением для написания писем в редакторе, которое радует меня и по сей день.

    looks and its easily extensible config supports most everything that I need, but it has always felt slow to me. Sacrificing function for form is not something that I usually do; especially in regard to text editing. I've dealt with the slowness for some time now; while it is annoying, the UX that Spacemacs provides is far superior to vanilla Emacs and I don't have the desire to recreate it with a hand-rolled config of my own.

    Spacemacs Screenshot

    What is Spacemacs?

    Spacemacs is a new way to experience Emacs -- a sophisticated and polished set-up focused on ergonomics, mnemonics and consistency.

    Just clone it, launch it, then press the space bar to explore the interactive list of carefully-chosen key bindings. You can also press the home buffer's [?] button for some great first key bindings to try.

    Spacemacs can be used naturally by both Emacs and Vim users -- you can even mix the two editing styles. Switching easily between input styles makes Spacemacs a great tool for pair-programming.

    Spacemacs is currently in beta, and contributions are very welcome.

    user. I know just enough vi

    to get by on the command line when SSH'ing into a machine without Emacs installed. As such, I've always used Spacemacs "on the planet Emacs in the Holy control tower"

    and never sailed "among the stars aboard the Evil flagship".

    Spacemacs contends, "The best editor is neither Emacs nor Vim, it's Emacs and Vim!".

    Doom Emacs Screenshot

    What is Doom Emacs?

    It is a story as old as time. A stubborn, shell-dwelling, and melodramatic vimmer -- envious of the features of modern text editors -- spirals into despair before succumbing to the dark side

    . This is his config.

    Doom is a configuration framework for GNU Emacs

    tailored for Emacs bankruptcy veterans who want less framework in their frameworks and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite OS.

    Much like Spacemacs, Doom Emacs defaults to using the extensible vi layer (EVIL

    ) mode. It certainly seems like most people prefer the vi key bindings, but still want that one-stop-shop experience that Emacs provides so well.

    Doom Emacs has a similar interface to Spacemacs, but based on my limited usage thus far; seems much more polished. For one, it starts up in under 2 seconds on my work MacBook Pro. You may be yelling in your chair right now: "You don't run Emacs over and over! You use the client/server! Who cares if it takes time to start when you're only going to start it once?"

    I do use the client / server, but I'm not so lucky to have an always-on workstation at work. It's also more responsive in general when browsing for files or performing searches.

    Helm-Projectile

    Не понимаю, почему люди до сих пор не бегают по улице, схватившись за голову и обезумев от радости — именно это я испытываю, используя Helm-Projectile. Гитхаб

    Emacs — 6 трюков для продуктивной работы

    Ранее я уже писал об использовании Emacs в качестве C++ IDE и другом техническом оснащении. Однако, я не обращал особого внимания на то, что использую Emacs и для работы много с чем ещё. Честно говоря, я не смог бы пользоваться этим редактором в полной мере, не будь в нем возможностей, которыми я здесь поделюсь. Также расскажу о настройках, которые я использовал в своём окружении, чтобы запустить всё это «из коробки» (буквально, копируя .emacs).

    Rtags

    Напомню, что уже писал пару постов о rtags: здесь и там.

    Чтобы начать

    tl; dr: Особо нетерпеливые этот раздел могут пропускать и сразу переходить к настройкам Helm.
    У меня установлен Emacs — 26.1, собранный из исходников. Вам это не потребуется. Все пакеты установятся из пакетного менеджера Emacs. Запускаете:


    Вы увидите список доступных пакетов в MELPA. Не переживайте, если не слышали о таком, это что-то вроде хранилища всех пакетов дополнений, как в репозитории Debian в дистрибутивах Debian/Ubuntu. Таким образом, мы имеем длинный список доступных пакетов, как на гифке:

    Если выбрать пакет, появится новый экран с коротким описанием. Обычно он содержит инструкцию для быстрого старта. Можете просто нажать i, затем x, чтобы установить пакет. Так можно поступить и с представленными ниже пакетами.


    Если Вы ещё не знаете, что это — бросьте все и уделите этому внимание. Скорее всего, оно того стоит. Не думаю, что потребуются какие-то пояснения, достаточно описания с официального сайта:
    «Helm — это Emacs-фреймворк, инкрементальный поиск и автодополнение для файловых имен, имён буферов и прочих действий, требующих выбора элемента из списка возможных вариантов»

    Читайте также: