Update
Starting point
Map
Install
- How to Install and Use Emacs in Linux (@linuxtldr@noc.social)
- Peter Prevos: Using Emacs on Windows 10: An Installation Guide
- 30 days of Emacs – Day 1: Installation using Homebrew on macOS, first steps, tutorial, use-package
Next steps:
Starter kits
If you:
- need to hit the ground running, or
- you're curious about what a more-fleshed-out Emacs experience is like, or
- you're going in with significant experience with another editor, or
- you're particularly curious about a very specialized use of Emacs
then a starter kit might be a good way to get started. Starter kits combine a lot of packages and configuration in a simpler install, so you can get started faster. The flipside is that because they can change default Emacs behavior a lot, it might be harder for you to ask for help or apply tips from general Emacs posts.
Here are some starter kits you might be interested in:
- Doom Emacs: An Emacs framework for the stubborn martian hacker - can be configured with Emacs or Vim bindings. Fast. Uses SPC as a leader key for lots of shortcuts.
- syl20bnr/spacemacs: A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs and Vim!
- Emacs Writing Studio: an Emacs configuration and comprehensive guide for writers seeking to streamline their workflow
- jkitchin/scimax: An emacs starterkit for scientists and engineers focused on Org Mode
- Emacspeak: The Complete Audio Desktop: set up for speech synthesis; handy for visually-impaired users
- Emacs Live: focused on collaborative programmable music
- SystemCrafters/crafted-emacs: A sensible base Emacs configuration.
- ~technomancy/better-defaults - A few nice changes for Emacs - sourcehut git
Awesome Emacs lists more starter kits and example configurations.
Many people start with vanilla Emacs, try out a starter kit or two to get a sense of what's possible, and then either learn how to further customize that starter kit or go back to vanilla Emacs but add some of the interesting concepts they picked up from the starter kit.
From here, you may want to learn more about:
- finding community resources, especially if you're using a starter kit
- customizing Emacs
Finding community resources
- Emacs News: updates, inspiration
- Planet Emacslife: updates, inspiration
- Reddit r/emacs: updates, inspiration, community
- help-gnu-emacs Info Page: mailing list for general help
Customization
You can change a lot of Emacs behaviour through the Customize interface.
- To explore the options you can customize, start with
M-x customize
different options. - To customize a specific variable, use
M-x customize-variable
. You can set things temporarily by using theApply
button or save them for future sessions withApply and Save
.
Things I recommend starting out customizing:
fido-vertical-mode
: turn this on to get easier completion in the minibuffer; see completionwhich-key-mode
: turn this on to see help when you type keyboard shortcuts slowly; see shortcutsmake-backup-files
: turn this off if you're bothered by the backup files ending in~
. Eventually, when you're more comfortable with Emacs, you can turn this back on and customizebackup-directory-alist
to put the backup files in one directory.create-lockfiles
: turn this off if you're bothered by the lock files starting with.#
.
From here, you may want to learn more about:
Shortcuts
Useful ideas/things to explore:
- Keyboard shortcuts can have more than one keystroke (ex:
C-h C-q
) - When you know the first part of a keyboard shortcut but not the complete shortcut, use
C-h
at the end to see the available shortcuts. For example, to list all the shortcuts starting withC-c
, typeC-c C-h
. - If you use
M-x which-key-mode
, pausing in the middle of a shortcut will show you a list of shortcuts. If you like that, useM-x customize-variable
to save yourwhich-key-mode
setting for future sessions.
You may want to set your own shortcuts. This involves using Emacs Lisp. Don't be intimidated, this is a perfectly normal part of configuring Emacs.
Other resources:
- How to Learn Emacs: A Hand-drawn One-pager for Beginners / A …
- Ultimate EMACS Cheat Sheet!
- A tiny Emacs cheatsheet I printed for my pocket notebook. (Reddit)
At this point, people often wonder:
- How can I use the same keyboard shortcuts used in other applications, like
C-c
to copy andC-v
to paste?- You can use cua-mode to set up those shortcuts, but you may want to get used to the Emacs way of doing things because then you'll have a lot more shortcut key possibilities and it will be easier for you to follow other tutorials.
- How can I remember all these shortcuts?
- It can get overwhelming, so try to focus on getting the hang of just a few shortcuts at the time. You may want to use M-x to call commands by name, especially with completion. Also, quick help (
C-h C-q
) can show you the most frequent shortcuts and the menu bar (F10
if you're using the keyboard) lists other common commands. It's a good idea to take notes, too. You can use a sticky note near your computer, a paper notebook, or even a text file that you open in Emacs.
- It can get overwhelming, so try to focus on getting the hang of just a few shortcuts at the time. You may want to use M-x to call commands by name, especially with completion. Also, quick help (
Keyboard macros
Keyboard macros let you record and play back keystrokes. You can even save them as Emacs Lisp functions.
Emacs Lisp
You can find out where your Emacs configuration by using C-h v
(describe-variable
) to look up user-init-file
.
You can use M-x eval-region
, M-x eval-last-sexp
, or M-x eval-defun
to execute parts of your code.
- Getting Started With Emacs Lisp Hands On - A Practical Beginners Tutorial (Reddit)
- Learn Emacs Lisp in 15 minutes - Bastien Guerry
- Protesilaos Stavrou: Learning Emacs and Elisp
- Using Emacs and Learning Elisp Series - C'est la Z
From here, you probably want to learn more about:
- How to figure out what's wrong - debugging tips
Debugging
If there's a problem with your Emacs configuration file, starting Emacs with emacs --debug-init
can be helpful. You can use M-x eval-region
, M-x eval-last-sexp
, or M-x eval-defun
to execute parts of your code.
M-x edebug
is very handy for stepping through Emacs Lisp code.
Tutorial
You can get to the tutorial inside Emacs by pressing C-h t
(that's Control+h
and then t
) or by using M-x help-with-tutorial
(that's usually Alt-x
then help-with-tutorial
and then your Enter
key). The tutorial will teach you conventions and basic shortcuts.
There are also some tutorials that cover basic concepts and navigation:
- https://www.gnu.org/software/emacs/tour/index.html basic concepts
- https://www.emacswiki.org/emacs/EmacsNewbie
- https://www.masteringemacs.org/article/beginners-guide-to-emacs basic concepts
- The Absolute Beginner’s Guide to Emacs - System Crafters - if you prefer videos
- The Emacs Newbie Project - The Great SummerEmacs Blog
- Emacs from scratch
- Emacs has no learning curve
- The Complete Emacs Course - Udemy
Conventions
The Emacs tutorial (C-h t
) will help you learn how to read how people write about keyboard shortcuts (C-
, M-
, C-M-
, RET
, etc.).
Org Mode
Taking notes in Org Mode is nice because you can use hyperlinks. C-c C-o
opens a link on Org Mode.
After you get the hang of that, you can learn how to use headings and subtrees to organize your notes.
- Org Mode for Beginners
- Emacs | Org Mode Basics For Beginners (09:24)
- Getting Started with Emacs Org Mode on Windows (31:19)
- Org Mode Productivity - YouTube org mode
- An Emacs Series for Beginners using evil-mode and org-mode on vanilla Emacs
- Org Mode - Organize Your Life In Plain Text!
Many people use Org Mode for writing.
M-x
You can call commands by name so that you don't have to remember their keyboard shortcuts and so that you can call functions that don't have any keyboard shortcuts.
M-x
("Meta x") is probably equivalent to Alt-x
or Option-x
or Cmd-x
on your keyboard.
You'll probably want to set up completion.
Completion
Try M-x fido-vertical-mode
to turn on
completion, and then use M-x
again and start
typing. If you like that, you can set that as the
default with M-x customize-variable
fido-vertical-mode
. Click on Apply and Save
(or go to it and press RET
) to save it for
future sessions.
If you're curious, you can explore packages for
other completion systems such as vertico
.
Packages
Lots of people have shared Emacs Lisp packages to
add new features to Emacs. The ELPA and NonGNU
ELPA package archives are enabled by default. You
can see the packages in those archives by using
M-x package-refresh-contents
to update the list
of packages and M-x list-packages
to list them.
From here, you might be interested in using
use-package
to organize your package-related
configuration.
Writing
- thinkhuman/writingwithemacs: Tips, Examples, and Resources for Writing with Emacs
- pprevos/emacs-writing-studio: Emacs configuration for authors who research, write and publish articles, books and websites.
- sympodius/org-novelist: Org Novelist is a system for writing novel-length fiction using Emacs Org mode.
use-package
Many people organize package-related code in their configuration file by using use-package
.
If you use use-package
, it can be easier to copy stuff from those configurations. If you don't, you may need to translate some of the shorthand. For example, the :bind
keyword can be replaced with global-keymap-set
or keymap-set
calls as appropriate.
Undo
dired
If you use C-x C-f
to visit a directory instead of a file, you can use Dired to navigate and manage your directory.
- Dired (GNU Emacs Manual)
- Emacs: file and Dired basics - YouTube
- James Dyer: Simple Directory and File Creation in Dired
- James Dyer: Opening Files Externally from dired
- How to compress files to ZIP archives directly from Dired - dired-do-compress
- Ask for creating missing directories on file move/copy/rename
- Casual Dired 1.2.0 adds Goto File, other things
Also useful: find-dired, find-grep, dired-do-find-regexp-and-replace
Next steps:
- You can bulk-rename or delete files from Dired with wdired (writeable dired).
wdired
Want to do lots of renaming? Use C-x C-q
(dired-toggle-read-only
) in a Dired buffer to make it editable, make your changes, and then use C-x C-q
to apply your changes.
Resources:
Help
There are a lot of ways to look up help within Emacs.
- How to learn Emacs: self-driven discovery by leveraging the Emacs built-in help, debugging facilities, and source code
- Emacs help / info system basics (01:11)
- Emacs: Help section & Elisp - YouTube
- Let Emacs teach you Emacs! | Emacs Help System | Switching to Emacs #3 - YouTube (12:11)
- scimax - Getting help in emacs (10:50)
Bookmarks
- The Essentials of Emacs Bookmarks (Reddit, Irreal)
- Protesilaos Stavrou: Primer on Emacs bookmarks (Irreal)
- Emacs Bookmarks Save Your Place (05:05)
- Emacs: introduction to bookmarks (24:21)
- Using Emacs 76 Bookmarks and Burly (Reddit)
- Bookmarks, Buffers and Windows in Doom Emacs (16:32)
- Fastest way to jump to bookmarks (Reddit) (2015)
- Creating and using bookmarks
- Use bookmarks to jump to files or directories
- Emacs: Store anything with registers and bookmarks (08:29)
- Charles Choi: Using Bookmarks in Emacs like you do in Web Browsers (Irreal)
- Faster buffer bookmarking in Emacs
- Announcing Casual Bookmarks (Reddit, Irreal)
emacsclient
You don't have to stop and start Emacs all the time. If you use M-x server-start
or add (server-start)
to your Emacs configuration, you can start the Emacs server. Then you can connect to it with emacsclient WHATEVER_FILE
to edit the file, or emacsclient -c
to open a frame without editing a file. On Windows, you may want to use emacsclientw
instead. (Make sure it's in your path.)
Use C-x #
when you're done.
If you like that, you may want to consider setting the EDITOR
variable to emacsclient
(ex: export EDITOR=emacsclient
in Linux or Mac OS X, or set EDITOR=emacsclient
in Windows).
Themes
The easiest way to tinker with the colours Emacs uses is to switch your theme. Use M-x customize-themes
to select from the built-in themes. You can get other themes as packages.
- Custom Themes (GNU Emacs Manual)
- How to switch, customize, or write themes - Configuration - Doom Emacs Discourse - if you're using the Doom Emacs starter kit
Helpful if you're making your own themes:
TODO Index beginner tutorials
This list is at https://gist.github.com/sachac/1748eb1d454e6e89e87bc27f58f6114f
There's actually a lot of stuff out there on installing Emacs, concepts (ex: buffers and frames), navigation and editing, using documentation, basic Org Mode, configuration, and Emacs Lisp. It'll be interesting to roughly categorize them, see where the overlaps are, and find good resources to recommend in each category.
- https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-en.org how to learn
- Emacs In a Box
- pierre-lecocq/emacs4developers: A document to help developers to use Emacs as a developer
- Your first taste of emacs | Junior developer diaries
- <2024-08-15 Thu> Emacs Tutorial - Part 1
- Emacs Tutorial: A Comprehensive Guide for Beginners (@machaddr@mastodon.sdf.org)
- ~/.emacs for beginners
- Emacs in fifty keystrokes (and why some of you should just use Vim) | by enzu.ru | Medium (HN)
- A Beginner's Guide to Using Emacs Text Editor in Linux (@governa@fosstodon.org)
- Primeros pasos con Emacs
- Emacs: Guide for Beginners(WIP)
- The Ultimate Collection of Emacs Resources (2011, Reddit)
- Emacs Speedrun Content
- How to learn Emacs?
- Learning resources for Emacs
- How to learn Emacs - About this guide to Emacs (2012, HN)
- Do you also write small guides for yourself to remind you of your own emacs workflows? -
- Use GNU Emacs (Reddit, HN, lobste.rs, Irreal)
- The best way to learn Emacs - learning how to read the manual, finding blogs (2022)
- Chung-hong Chan: Advent of emacs #8: How I find information about emacs in emacs
- New to emacs; will you hold my hand?
- My emacs notes so far
- Wrote some basic emacs notes for myself as I kept forgetting these and looking these up would take a lot of time in the dense manuals.
- Emacs Movement Shortcuts Wallpaper
- How to start learning emacs - my successful method.
- Ask HN: How to Get Good at Emacs? | Hacker News
- What's the best way to learn Emacs?
- Your first five minutes in Emacs (Reddit) - Twitter thread
- Your first taste of emacs (Reddit)
- Looking for evil-mode resources for non vim users emacs beginners
- If you have trouble learning and retaining Emacs' key combos, here is what I've done to remember them (Reddit)
- The Modern Emacs - Andrew Tropin (1:33:38, Reddit)
- Beginning Emacs (2020)
- Peter Prevos: Configure Emacs: From Vanilla Emacs to Productivity
- New series of articles for beginners: More Productive with Emacs (Reddit)
- Emacs Tutorial: From M-x, Emacs' Universe Big Bang (Reddit)
- How to start using Emacs, the programmer's editor
- Trying out Emacs again (Reddit)
- Everything you need to know before try Emacs - KeepCoding
- Emacs Resources · Renaissance (Reddit)
- New Creator - My Video teaching Emacs fundamentals to everyone(non-programmers, somewhat technical people).
- Clojure Journey III – Emacs for Beginners Course – O. Valadares' Blog
- Introduction to Emacs – Linux Hint
- Emacs Notes: Emacs TUTORIAL Re-imagined
- Exploring Emacs Ⅰ: What Is Emacs and Why Should You Use It? (Reddit)
- Exploring Emacs Ⅱ: Installation and Basic Usage (Reddit)
- How do I actually get into Emacs?
- Emacs Resources | Patrick Simpson
- How to learn Emacs | IT PRO - Emacs tutorial that gets to org-babel quickly
- Watch "Emacs for beginners - Basics - 01" on YouTube
- A beginner’s guide to text editing with Emacs (Reddit)
- Beginners Screencast - Setting up Emacs From Scratch By Tsoding
- world-of-emacs: A brief guide for getting into and through the world of Emacs
- How do I start to learn emacs?
- Absolute Beginner's Guide to Emacs (2012, Reddit, HN)
- Learning Emacs Guide (Reddit)
- Get Emacs - http://emacs.link - Aaron Schumacher's cross-platform, how-to-get-emacs website (Reddit)
- Beginner's Guide to setting up a basic Emacs C++ IDE-ish environment from scratch (clang/RTags/cmake-ide/company/irony) (Reddit)
- Emacs Tutorial Series => the learning path I wanted to read while I was getting started (Reddit) - from March 2017
- Emacs tutorial series
- Newbie tips for non-programmers - see comments for tips
- Learning Resource Recommendation: beyond the basics
- Learning Emacs the right way?
- Coming from Vim:
- A Vim user's introduction to Emacs (March 2020)
- A gentle introduction to Emacs for ex-ViM users (09:08)
- Videos
- (17) Making Spacemacs as A Text Editor for Writers | For Beginners | Spacemacs Basics - YouTube (25:12, April 2020)
- 3. Basic Editing Commands - Part II (29:26)
- 4.1. Emacs Basics - Unix/Linux Text Editor | Software Engineering Journey (32:31)
- I am once again trying to sell you Emacs (21:30)
- Alx Project 0x02 Working with Emacs (41:07)
- Basic Commands for Vi and Emacs Editors(A Beginner's Guide). (21:24)
- Basic EMACS Command | EMACS Tutorials for Beginners (Latest Updates) (28:36)
- Complementary material for the youtube video series "Inside Emacs"
- Configure Vanilla Emacs in 10 Minutes (08:37)
- COS 217 Fall 2020 Lecture 2 - emacs and bash - YouTube (51:27)
- Emacs - Beginners Guide (09:52)
- Emacs Basic Editing Commands (Mega Tutorial Part 2) (41:03)
- emacs command | Linux ZERO TO ADVANCE | Linux video series 64 #linux #opensource #devops #sysadmin (10:01)
- EMACS Commands Full Tutorials with Precious Iriaevho (Live Recording) (01:01:40)
- Emacs Crash Course in 6 Minutes (07:18)
- Emacs Doom Episode 1 - Getting Started - YouTube
- Emacs Editing Text Part 1 (16:03)
- Emacs Essentials - YouTube
- Emacs For Complete Beginners (34:37)
- Emacs From Scratch (New) - YouTube (older series)
- Emacs From Scratch, An Emacs tutorial for beginners - 12 Features & load…
- Emacs From Scratch, An Emacs tutorial for beginners – 13 Editing Modes, Part 1 (21:15)
- Emacs Installation 0 (2:53) - Mac OS X
- Emacs is Powerful Part I and II (01:03:48)
- Emacs Mega Tutorial Part 1 (The Saga Begins) (01:12:55)
- Emacs Part I (15:32)
- Emacs Tutorial For Beginners |alx software engineering (09:23)
- Explaining Doom Emacs Basics for Beginners | Config Files | Creating Files and Folders (19:43)
- Exploring Emacs: Simple IDE-lite like Set Up for Emacs for Windows - YouTube
- Fastest Emacs startup tutorial (08:31)
- First Steps With Emacs (7:57)
- Get started with emacs (09:14)
- Getting Started With Emacs As a Standard Text Editor (10:43)
- GNU Emacs - Introduction (38:09)
- Hacker Tools AY 21/22 S 1: Emacs (01:23:22)
- Hassle-Free Emacs Setup: The Ultimate Beginner's Guide (Part 1) 🔥 (16:31)
- How to build an editor with Emacs Lisp - 02 Survive on the first day (01:05:19)
- How to Install Emacs on Ubuntu for WSL (04:29)
- How to Install Emacs Text Editor on Ubuntu 22.04 LTS (03:36)
- How to really love Emacs? Learn Elisp. - YouTube (18:56, Reddit, Irreal, lemmy)
- Imparare Emacs (26:27)
- Installing Doom Emacs for the non-programmers (Windows & Linux) (20:48)
- Introduction to Emacs (01:06:01)
- Introduction to GNU Emacs (54:27)
- Know Thy Emacs 2024_07_11_04:30:20 - finding out more about Emacs
- Learning Emacs guide and tips (12:24, Reddit)
- Learning Emacs Lisp - YouTube
- Learning to work with Emacs - learn Other IT & Software (07:30)
- Linux 408 Emacs part one (22:12)
- Linux 411 Emacs configuration (10:21)
- LinuxFest Northwest 2022: GNU Emacs & Screen - intro, advanced topics, and Q &A (53:02)
- My Emacs Tutorial (32:30)
- Setting up and Using Emacs (06:32)
- Stevey's Tech Talk E39 – A guided tour of Emacs (45:11)
- Stevey's Tech Talk E41: Emacs Part 2 - Emergency Emacs (53:59)
- The Absolute Beginner's Guide to Emacs (01:11:56)
- The Basics of Emacs Configuration - YouTube (24:12)
- Vim And Emacs Are The Most Important Skills You Should Learn (21:57)
- What Is Doom Emacs and How to Install It (03:33)
- What is Emacs? (18:40)
- Where To Learn Emacs in 2024 (07:11) - YouTube channel recommendations, blogs
- Other languages:
- Toda la ayuda de Emacs
- Emacs Tutorial (Editoren unter Linux #4) (17:49)
- Emacs | Editores de Texto 🇧🇷 (19:32)
- たのしむ、Emacs: カーソル移動系コマンド (07:25)
- たのしむ、Emacs: テキスト編集コマンド (09:37)
- たのしむ、Emacs: 修飾キーのきほん (06:25)
- WindowsへのEmacsの導入(Windows PC上のプログラミング環境整備 第7回) (17:05)
- Org-mode + Emacs 入門ガイド: Emacsのインストール (08:21)
- Que es GNU EMACS El editor de texto extensible y mucho mas (05:02)
- Una introducción Rápida y Furiosa a Emacs (09:57)
- Usando o emacs (08:41)
- Introduccion a Emacs (0x0001) (33:40)
- Introducción a Emacs (español argentina) (para novatos) (54:48)
- introducción a EMACS (Tutorial) (15:00)
- Introducción a Linux. M11. Operaciones con emacs. | 71/107 | UPV (04:04)
- Introducción a Linux. M11. Operaciones con emacs. | 72/108 | UPV (04:04)
- Introduzione ad Emacs (28:10)
- Just a beginner's guide for Doom Emacs | 그냥 기본적인 편집 가이드
- Live de Segunda #98 - Conhecendo o Emacs! (se o Facebook não cair) (02:03:30)
- GNU Emacs. Часть 1. Введение (05:56) - introduction
- GNU Emacs: Intro - YouTube (Spanish; 7:47)
- Emacs для начинающих. Мои shortcuts/ For beginners. My shortcuts
- AO VIVO Configurando o Emacs do zero - parte 1 (01:35:22)
- AO VIVO Configurando o Emacs do zero - parte 2 (01:37:19)
- AO VIVO Configurando o Emacs do zero - parte 3 (01:19:56)
- Como Instalar Emacs No Seu Windows Pc Em 2024 (01:53)
other resources:
Support code
Source for this file: https://sachachua.com/web/beginner-map.org (you'll also need my code to inline SVGs from https://sachachua.com/dotemacs#org-inline-svg)