This is my very own Emacs configuration. There are many like it, but this one's mine.
This configuration is meant and has only been tested with Emacs 29.2.
I try to be explicit about what I use. Magic is limited to using external packages. I know every line of the configuration and why are they there.
I use use-package extensively.
I used to have an Emacs configuration based on Prelude which is now discontinued.
This list might be outdated, you would do better by grepping init.el for use-package
uses.
ace-window
: quickly move/split/swap/copy windows.all-the-icons
: pretty icons.all-the-icons-ibuffer
: pretty icons in ibuffer.all-the-icons-completion
: pretty icons in completion minibuffer.anzu
: highlight search and replace.apheleia
: async autoformatter for many languages.auto-compile
: compile Elisp files on load and/or save.avy
: quick jumps.browse-kill-ring
: Browse. The. Kill. Ring.calibredb
: an Emacs interface to the Calibre DB.corfu
: completion-at-point popup. Like company but lighter.compile
: built-in command to compile stuff.consult
: practical commands based on the Emacs completion functioncompleting-read
.consult-dir
: insert directory paths into the minibuffer prompt.crux
: collection of random utilities, originally bundled with Prelude.csv-mode
: major mode to edit CSV (Comma-Separated Values) files.diff-hl
: show uncommitted changes.diminish
: hide minor-modes from modeline.dirvish
: an improved batteries-included dired replacement.dockerfile-mode
: major mode to edit Dockerfiles.doom-modeline
: a very nice modeline.doom-themes
: collection of themes for Doom Emacs, they place nicely withdoom-modeline
.easy-kill
: mark/kill words, sexps, lines and more.editorconfig
: support for .editorconfig files.eglot
: LSP client built-in since Emacs 29.eldoc
: display documentation about current function in echo area.ellama
: interact with large language models from Emacs.embark
: choose a command to run based on what is near point, both during a minibuffer completion session and in normal buffers.emojify
: display emojis.envrc
: use direnv to update Emacs environment when visiting files.exec-path-from-shell
: have Emacs inherit environment variables.expand-region
: increase selected region by semantic units.flymake
: Emacs built-in error checker. It integrates natively with Eglot.flyspell
: spell checking.forge
: Magit extension to work with code hosting sites (e.g. GitHub).geiser
: Scheme hacking.git-timemachine
: browse previous revisions of any git-controlled file.go-mode
: major mode for Go files.helpful
: better help buffers.ibuffer
: better buffer view. Like dired for buffers.ibuffer-projectile
: group buffers by project in ibuffer view.js2-mode
: major mode for Javascript files.js2-refactor
: refactor operations for Javascript code.json-mode
: major mode for JSON files.key-chord
: execute commands by pressing keys quickly.keycast
: show current command and its binding.kind-icon
: icons for completion-at-point candidates.magit
: the best Git interface there is.magit-delta
: integrate delta diff with Magit.marginalia
: adds marginalia to the minibuffer completions.markdown-mode
: major mode to edit Markdown files.move-text
: move lines or regions up and down.nov-el
: major mode for reading EPUB files in Emacs.olivetti
: center text for better writing.orderless
: completion style that divides the pattern into space-separated components, and matches candidates that match all of the components in any order.org
: the most powerful note taking and planning software ever created.org-superstar
: prettier headings in org-mode.orgit
: link to Magit buffers from Org-mode.orgit-forge
: link to Forge buffers from Org-mode.perspective
: per-project named workspaces with window layouts and buffer lists.popper
: tame the flood of ephemeral windows Emacs produces.projectile
: project management.puni
: minor mode to work with delimiters that come in pairs, e.g. parentheses, braces, tags, etc.rainbow-delimiters
: color delimiters such as parentheses or braces as they nest.rainbow-mode
: color strings that describe colors.rjsx-mode
: minor mode for React JSX files.rustic
: major mode for Rust coding.saveplace
: built-in to remember last position on each open file.super-save
: automatically save buffers on certain events.systemd
: major mode for editing systemd files.tramp
: remote file editing, beyond cool.treesit-auto
: automatically install and use tree-sitter grammars.unfill
: the inverse of Emacs'fill-paragraph
andfill-region
.vundo
: visualize and navigate the undo history as a tree, never lose an edit.vertico
: performant and minimalistic vertical completion UI based on the default completion system.volatile-highlights
: visual feedback for some operations.web-mode
: major mode for web templates (HTML and much more).wgrep
: edit a grep buffer and apply those changes to the file buffer.which-key
: show all possible key combinations.whitespace-cleanup-mode
: minor mode to clean up a buffer's whitespace on save.writegood-mode
: minor mode to aid in finding common writing problems in English.yaml-mode
: major mode for YAML files.yasnippet
: snippet extension.yasnippet-snippets
: snippet collection for yasnippet.
I have drawn inspiration from many other people's configurations of Emacs. I thank them all for sharing, usually with much better comments than mine. Here are the ones I have studied more in depth: