LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

Emacs Text Editor

Getting Started

Emacs keybindings use a shorthand notation: C- means hold Ctrl, and M- means hold Alt (Meta). For example, C-x C-s means press Ctrl+x, then Ctrl+s. Start Emacs with -nw to run it inside the terminal instead of opening a window.
$ emacs textfile.txt
copy
$ emacs -nw textfile.txt
copy
KeyDescription
C-x C-fOpen a file
C-x C-sSave current file
C-x C-wSave as (write to a different file)
C-x C-cQuit Emacs
C-gCancel current command or operation
C-/Undo last change (also C-x u)
Stuck in a command you did not mean to start? C-g cancels almost anything. The built-in interactive tutorial is at C-h t.

Navigation

Movement commands come in pairs: C- moves by small units, M- moves by larger units.
KeyDescription
C-fMove forward one character
C-bMove backward one character
M-fMove forward one word
M-bMove backward one word
C-nMove to next line
C-pMove to previous line
C-aMove to beginning of line
C-eMove to end of line
M-aMove to beginning of sentence
M-eMove to end of sentence
M-{Move to beginning of paragraph
M-}Move to end of paragraph
C-vScroll down one page
M-vScroll up one page
M-<Move to beginning of buffer
M->Move to end of buffer
M-g gJump to a line number
C-M-aMove to beginning of function
C-M-eMove to end of function

Editing

Mark a region with C-SPC to set the start point, then move the cursor to select text. Emacs says "kill" for cut and "yank" for paste.
KeyDescription
C-SPCSet mark (start of selection)
C-x hSelect the entire buffer
C-wCut (kill) selected region
M-wCopy selected region
C-yPaste (yank) last killed text
M-yAfter C-y: cycle through earlier killed text
C-kKill from cursor to end of line
C-dDelete character under cursor
M-dKill from cursor to end of word
TABIndent current line
C-x C-+Increase text size
C-x C--Decrease text size
Killed text accumulates in the kill ring, not just a single clipboard. Press C-y then repeat M-y to step back through everything you killed recently.

Search and Replace

Emacs uses incremental search: results appear as you type. Press C-s again to jump to the next match, Enter to stop at the current one, or C-g to cancel and return to where you started.
KeyDescription
C-sSearch forward (incremental)
C-rSearch backward (incremental)
M-%Search and replace (query mode)
In query replace, answer y to replace, n to skip, ! to replace all remaining, q to stop.

Buffers and Windows

Every open file lives in a buffer. Emacs can split the screen into multiple windows, each showing a buffer.
KeyDescription
C-x 2Split into top and bottom windows
C-x 3Split into left and right windows
C-x 1Close all windows except current
C-x 0Close current window
C-x oSwitch to the next window
C-x bSwitch to a different buffer by name
C-x C-bList all open buffers
C-x kKill (close) a buffer
C-x dOpen the directory browser (Dired)

Commands

Run any command by name with M-x followed by the command name. Every keybinding is a shortcut for one of these commands.
KeyDescription
M-x eshellOpen a terminal shell inside Emacs
M-x toggle-word-wrapToggle word wrapping
M-x flyspell-modeToggle spell checking
M-x display-line-numbers-modeToggle line numbers
M-x visual-line-modeToggle visual line wrapping
M-x compileRun a compile command
M-x package-list-packagesBrowse and install packages

Getting Help

Emacs documents itself. The help system answers "what does this key do" and "which key runs this command".
KeyDescription
C-h tOpen the interactive tutorial
C-h kDescribe what a key combination does
C-h fDescribe a function
C-h vDescribe a variable
C-h aSearch commands by keyword
Copied to clipboard
Kai