⌥+⌃AltPlusCtrl

Emacs Keyboard Shortcuts

Emacs predates nearly every other editor on this site by decades, and its shortcut philosophy reflects that different era of keyboard design — rather than single unmodified letters for mode-based actions (the Vim approach) or discoverable menu-driven modifier combos (the modern GUI approach), Emacs relies almost entirely on chorded Control and Meta (Alt) combinations, often stacked in sequence, referred to in Emacs terminology as C- for Control and M- for Meta. This produces a genuinely steep initial learning curve but an editing experience many long-time users describe as never needing to leave the home row at all, for editing, navigation, or even email and file management within Emacs' broader ecosystem of built-in modes. Windows and Linux use Ctrl and Alt directly; Mac traditionally maps Meta to either Option or the Command key depending on configuration, a frequent early source of confusion for Mac users new to Emacs.

Cursor Movement

ActionWindowsMacDescription
Move forward one characterCtrl+FCtrl+FMoves the cursor forward one character, functionally identical to the Right Arrow key but reachable without moving your hand off the home row, part of Emacs' foundational philosophy of keeping frequent actions within immediate finger reach.
Move backward one characterCtrl+BCtrl+BMoves the cursor backward one character, the reverse companion to Forward, following the same home-row-reachable design principle.
Move to next lineCtrl+NCtrl+NMoves the cursor down one line, equivalent to Down Arrow, again reachable without leaving the home row.
Move to beginning of lineCtrl+ACtrl+AMoves the cursor to the beginning of the current line, a binding worth knowing since Ctrl+A means something completely different (Select All) in almost every other application, a common early point of confusion for Emacs newcomers.
Move to end of lineCtrl+ECtrl+EJumps the cursor to the current line's end, mirroring beginning-of-line in the opposite direction.
Move forward one wordMeta+F (Alt+F)Option+F or Esc then FMoves the cursor forward by a whole word rather than a single character, using Emacs' Meta modifier convention for word/larger-unit movement as opposed to Control's character/line-level movement.
Move backward one wordMeta+B (Alt+B)Option+B or Esc then BMoves the cursor backward by a whole word, the reverse companion to forward-word, both using Emacs' Meta modifier for word-level movement as opposed to Control's character-level movement.

Editing Killing

ActionWindowsMacDescription
Kill (cut) to end of lineCtrl+KCtrl+KDeletes from the cursor position to the end of the current line, storing the deleted text in Emacs' kill ring (its version of a clipboard) for later yanking (pasting) elsewhere.
Yank (paste) from kill ringCtrl+YCtrl+YPastes the most recently killed (cut) text at the cursor position, Emacs terminology using 'yank' rather than 'paste,' reflecting its own distinct historical vocabulary predating today's more standardized clipboard terminology.
UndoCtrl+/Ctrl+/ or Ctrl+X UUndoes the most recent edit, with Emacs' undo system notably supporting redo by simply continuing to undo past the point where you'd normally expect it to stop, cycling back through the undo history in a way that differs conceptually from a typical linear undo/redo stack.
Abort current command sequenceCtrl+GCtrl+GCancels whatever partially-entered command, prefix key, or minibuffer prompt is currently in progress, restoring Emacs to a normal ready state — the single most useful shortcut to remember whenever a command sequence feels stuck or you've typed a wrong prefix.

Buffers Files

ActionWindowsMacDescription
Save current bufferCtrl+X Ctrl+SCtrl+X Ctrl+SSaves the current buffer (Emacs' term for an open file/document) to disk, following the common Emacs pattern of a chorded two-part command — Ctrl+X as a prefix indicating a file/buffer/window command follows, then a second key specifying which.
Open (find) a fileCtrl+X Ctrl+FCtrl+X Ctrl+FOpens a file for editing, prompting for a file path in the minibuffer at the bottom of the screen, Emacs' equivalent of a typical Open File dialog but entirely keyboard and text-driven.
Switch to another open bufferCtrl+X BCtrl+X BSwitches to a different currently open buffer by typing its name (with tab-completion) in the minibuffer, Emacs' way of navigating between multiple open files without a traditional tabbed interface.

Frequently Asked Questions

Why does Emacs use terms like 'kill,' 'yank,' and 'buffer' instead of 'cut,' 'paste,' and 'file'?

Emacs' terminology predates the standardization of terms like cut/copy/paste that became common convention across later mainstream software, reflecting its origins in an earlier era of computing where this specific vocabulary developed somewhat independently — 'kill' and 'yank' function analogously to cut and paste but with some genuinely distinct behavior (a 'kill ring' storing a history of multiple killed segments, not just one clipboard slot), so the different terminology also signals a real behavioral difference, not just a naming quirk.

Why is Ctrl+A 'move to beginning of line' instead of 'Select All' like everywhere else?

This reflects Emacs' original, much older keybinding conventions (based on Control key combinations mapped to cursor movement going back to its earliest versions) predating the later, broadly standardized use of Ctrl+A for Select All that became common in GUI applications developed afterward — Emacs has generally kept its original bindings for backward compatibility with decades of muscle memory built up by existing users, rather than adopting later industry conventions that would conflict with them.

Why do Mac users specifically struggle with the Meta key in Emacs?

Traditional Emacs commands were designed assuming a physical Meta key, historically mapped on Mac to either the Option key or, in some configurations, the Command key, and different terminal emulators and Emacs builds on Mac have handled this mapping inconsistently over the years — some Mac keyboards or terminal settings can also intercept Option-key combinations for accented character input by default, further complicating Meta-based shortcuts, which is why Mac-specific Emacs setup guides often include an early step for explicitly configuring which physical key should act as Meta.

What does the C-x C-c shortcut actually do, and is it safe to press by accident?

C-x C-c asks Emacs to exit, prompting to save any modified buffers first if there are unsaved changes, so an accidental press is generally recoverable rather than destructive — the save prompt gives you a chance to cancel before anything is lost. New users occasionally trigger it by fumbling a different C-x-prefixed command partway through, which is a good reason to get comfortable early with C-g (keyboard-quit), the universal escape hatch for aborting whatever partially-typed command sequence or minibuffer prompt you're currently stuck in, restoring Emacs to a normal ready-to-type state from almost any half-finished input.

What should I press if I've typed a command prefix by mistake and don't know how to back out?

Ctrl+G is the universal keyboard-quit command in Emacs, canceling whatever partially-typed prefix key, command, or minibuffer prompt is currently pending and returning you to a normal, ready-to-type state, which works from nearly any stuck or half-finished input state rather than being limited to one specific context.