How to install Doom Emacs

Doom-Emacs is a configuration for the people who like VIM but want to use Emacs. I am been using Doom Emacs for a couple months now and I am happy with some of the features.

Doom-Emacs is not the most famous configuration for Emacs, the number one is SpaceEmacs.
You don't need a configuration from other people to use Emacs, you can use it with the default settings or create your own configuration, and if you are a fan of VIM install Evil mode which brings to you features from VIM.


Here are some of the features from Doom Emacs before to talk about the installation process:

  • A declarative package management system with a command line interface that combines package.el, [use-package] and [quelpa].
  • A popup management system with customizable rules to dictate how temporary/disposable buffers are displayed.
  • A vim-centric (and optional) experience with evil-mode, including ports of several popular vim plugins.
  • A Spacemacs-esque keybinding scheme, centered around leader and localleader prefix keys.
  • Indentation detection and optional integration with editorconfig.
  • Code completion for many languages, powered by company-mode.
  • Project-awareness powered by projectile, with tools and an API to navigate and manage project.
  • Project search (and replace) utilities.
  • Isolated and persistent workspaces powered by persp-mode. Also substitutes as vim tabs.
  • Inline/live code evaluation (using quickrun), with REPL support for a variety of languages.

I use this configuration because it is fast and it has a good organization for personal configurations, but it is focused to VIM users if you want to use with Emacs keybindings you will need to spend more time in the configuration and it is not officially supported.


The installation is very easy but you can find some issues if you try to install it from the master branch. Here are the steps to install Doom from the terminal:

Clone the repository

The first thing that we need to do is to clone the repository in the Emacs configuration directory ~/.emacs.d .

git clone ~/.emacs.d

Use the develop branch

You can have problems installing the configuration using the master branch, this is the reason we are going to use the develop branch you can get more information about this issue in this ticket.

cd ~/.emacs.d
git checkout develop

Personal configuration

Now we need to create our personal configuration inside the ~/.doom.d directory, the most important file is init.el that you need to copy in the personal configuration directory:

mkdir ~/.doom.d
cp init.example.el ~/.doom.d/init.el

Install and compile the configuration

Before installing all the packages, you can modify the file ~/.doom.d/init.el, it contains the packages that will be installed with the command below.

make install

The installation can take some minutes. After the packages are installed you can use your Emacs with your new configuration.

I recommend you to read the FAQ in Github.