Overview

Emacs is a text editor that is often hailed for its ability to be customized. People use it for their agenda, RSS feeds, code editing, and more. By extending the base packages, vim keybindings can be used, LSPs can be configured, etc.

Terms

  • Projects - Just a folder.
  • Layers - Specific to Spacemacs: A set of toggleable configurations to bring packages together.
  • Modes - There are major and minor modes. Simply changes how text input affects the buffer.
  • Packages - Extending the base functionality of Emacs.

Highlights

Org Mode

There’s a rabbit hole called org-mode which I encourage you to at least consider. It’s useful for keeping an agenda, creating todos, knowledge management, documentation, etc.

GDQuest has a solid intro video here. A good follow-up is this video about tagging with org-mode.

Frequently recommended org extensions:

Magit

In Neovim, my favorite git UI is lazygit. Unfortunately it’s not that popular. In Emacs, my favorite git UI is the git UI for Emacs. It has everything. You could even start a Pull Request with a few key taps.

I haven’t tried it yet, but people also swear by Magit for resolving merge conflicts.

Emacs Pre-Built Distributions

Doom Emacs

My Doom Emacs config lives at https://github.com/ZaneH/doom-emacs-config

Doom Emacs Keybinds

As you press keys, watch the menu that appears at the bottom of the screen to find more useful keybinds.

KeybindDescriptionCustom
C-w C-wWindow selection
SPC p pSelect project
SPC o tToggle terminal
g s SPCJump to text
SPC g gOpen Magit (git)
SPC n r fFind a roam note
SPC n r iInsert roam note here
SPC n j jNew journal entry
M-dHighlight next occurrence
SPC r iMulti-cursor edit highlightedYes
SPC p iRefresh file cache

Spacemacs

The first time I used Emacs was with Spacemacs. In my experience, Spacemacs is slow.

Spacemacs Keybinds

As you press keys, watch the menu that appears at the bottom of the screen to find more useful keybinds.

KeybindDescription
SPC ?Opens all keybindings
SPC SPCOpens Emacs command menu
,Opens the major chord menu
SPC f sSave file
SPC f tOpen file tree
SPC f e dOpen Emacs dotfile
SPC f e RReload Emacs config
SPC p fFind file in project (fuzzy)
SPC j =Auto-format code
SPC j jJump anywhere
SPC w 2Split into a 2 window layout
SPC w TABNavigate to next window
SPC b bList all buffers
SPC b xClose current buffer and window
SPC T sSwitch themes
SPC s sSearch file
SPC q qKill Emacs
C-c C-p aAdd project to workspace
C-c C-p dDrop project from workspace
SPC /Search project (live grep)
SPC g sOpen Magit (git) panel
C-nSelect next occurance
C-h iOpens the Emacs instruction manual

As you combine these with vim/Emacs keybinds, everything just becomes more efficient.