Skip to content
A lightweight literate Emacs config with even better "better defaults". Shipped with a custom theme!
Emacs Lisp
Branch: master
Clone or download
Latest commit 9bd34d4 Jan 17, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Huge refactor to improve start-up time and config readability Jul 24, 2019
LICENSE Update Jan 17, 2020 Minor refactor for yasnippet configuration Jan 3, 2020
init.el remove theme loading to Dec 29, 2019

Ian's Yay-Evil Emacs: An even better 'better defaults'

Maintenance GPL License Version Awesome


This Emacs "distro" is based on my personal Emacs configuration. It's unopinionated and was created for general use in mind. The package settings are grouped in a logical manner, and I've documented as detailed as possible what each code snippet does in my file.

You can find my opinionated personal configuration here.

This Emacs config starts up super fast with an average init time of 0.7 second.


Back up your ~/.emacs.d/ first (if you have one):

mv ~/.emacs.d/ ~/.emacs.d.bak/

Git clone my configuration to your new ~/.emacs.d/ :

# For Emacs 26 and below
git clone ~/.emacs.d

# For Emacs 27
git clone ~/.config/emacs/

"Rolling" Release

I will constantly push new commits as soon as I discover new things suitable for this "distro".

How the config structure works

The init.el requires config.el, which is produced by org-babel and This allows me to put most of my configuration in an Org file with literate programming style (good for documenting code usage!).

Packages that I use:

Package manager

  • use-package

Vim editing habits (optional depending on your preferences)

  • evil
  • evil-collection
  • evil-commentary
  • evil-magit

Git integration

  • magit

Better Emacs defaults

  • company (auto-completion)
  • ido-vertical-mode
  • ido-completing-read+ (ido-ubiquitous)
  • yasnippets & yasnippet-snippets
  • dashboard (welcome screen)

Org mode

  • org-bullets

Friendly warnings

  • flycheck

Lightweight syntax highlight improvement for all languages

  • highlight-operators
  • highlight-numbers
  • highlight-escape-sequences

Appendix I: Themes I adore

If you prefer a theme pack with some of the most popular themes, I recommend the emacs-doom-themes package:

Wilmersdorf Theme

The default installation of my Emacs configuration ships with the Wilmersdorf theme I made myself. It is inspired by Monochrome, Spacemacs Dark, Ariake Dark, and Raiju. You can find more information on my theme here.

Appendix II: Fonts I adore

  • Source Code Pro (playful and modern-looking, easy on the eyes)
  • Droid Sans Mono (slick and elegant)
  • Menlo / DejaVu family (classic, default on lots of systems)
  • Input Mono (customizable, easy on the eyes)


1. But I'm not an Evil user

Sure! Simply delete the sections regarding Vi bindings in

2. How can I install extra packages that I want?

You should be able to install packages the normal way (M-x list-packages RET and i x on the desired package row). If you plan to sync your config files across machines, add the configuration in with your preferred syntax (use-package is recommended). Yay-Evil sets all the packages :ensure to true by default, so you don't need to add :ensure t.

3. How can I remove packages that I don't need?

For this you need two steps:

  • First, type M-x list-packages RET in Emacs bindings (or :list-packages RET in Evil Normal state) and delete the unwanted package by placing your cursor on the row and press d followed by an x.
  • Next, in the file, remove (or comment out) the relevant configuration code.
You can’t perform that action at this time.