<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Emacs Survival Guide on Ozbem</title><link>https://www.ozbem.com/tags/emacs-survival-guide/</link><description>Recent content in Emacs Survival Guide on Ozbem</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>info@ozbem.com (ebeem)</managingEditor><webMaster>info@ozbem.com (ebeem)</webMaster><copyright>© 2026 ebeem</copyright><lastBuildDate>Sun, 09 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.ozbem.com/tags/emacs-survival-guide/rss.xml" rel="self" type="application/rss+xml"/><item><title>2- User Input &amp; Text Navigation (Emacs Survival Guide)</title><link>https://www.ozbem.com/posts/tech/emacs/emacs-survival-guide-02/</link><pubDate>Sun, 09 Aug 2026 00:00:00 +0000</pubDate><author>info@ozbem.com (ebeem)</author><guid>https://www.ozbem.com/posts/tech/emacs/emacs-survival-guide-02/</guid><description>&#10;&lt;div id="outline-container-headline-1" class="outline-2"&gt;&#10;&lt;h2 id="headline-1"&gt;&#10;Introduction&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-1" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;With the fundamentals covered and your starter kit ready from &lt;a href="../emacs-survival-guide-01/"&gt;Part 1&lt;/a&gt;, it&amp;#39;s time to build your muscle memory. Navigating Emacs entirely by keyboard has no real shortcuts, it just takes consistent practice. In this guide, you’ll learn how to discover any keybinding directly inside &lt;code&gt;Emacs&lt;/code&gt;. Don’t stress about memorizing everything right away, the goal for now is simply understanding what commands exist, how to invoke them, and where to look them up when you forget.&lt;/p&gt;&#10;&lt;p&gt;&#10;Once that muscle memory sets in, editing in Emacs feels like playing an instrument. You will never be reaching for a mouse or arrow keys, acting and pressing keys without trying to recall keybindings.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; I found it extremely rewarding to invest in an ergonomic split keyboard. Also, if you&amp;#39;re not typing properly on keyboard using touch typing, you may consider practicing it more.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-2" class="outline-2"&gt;&#10;&lt;h2 id="headline-2"&gt;&#10;The Input Hierarchy: Characters, Chords, and Sequences&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-2" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;Every single key you press in Emacs translates to an interactive Emacs Lisp function call under the hood. &lt;code&gt;Emacs&lt;/code&gt; categorizes user input into three types:&lt;/p&gt;&#10;&lt;div id="outline-container-headline-3" class="outline-3"&gt;&#10;&lt;h3 id="headline-3"&gt;&#10;Normal Characters&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-3" class="outline-text-3"&gt;&#10;&lt;p&gt;Standard alphanumeric keys (&lt;code class="verbatim"&gt;a–z&lt;/code&gt;, numbers, punctuation) insert directly into the active buffer at the current cursor location (which Emacs calls the &lt;strong&gt;point&lt;/strong&gt;). In special read-only modes like &lt;code&gt;Dired&lt;/code&gt;, these same keys trigger commands instead.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-4" class="outline-3"&gt;&#10;&lt;h3 id="headline-4"&gt;&#10;Key Chords&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-4" class="outline-text-3"&gt;&#10;&lt;p&gt;A key chord occurs when you hold down one or more modifier keys while striking another key:&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Symbol&lt;/th&gt;&#10;&lt;th&gt;Keyboard Key&lt;/th&gt;&#10;&lt;th&gt;Emacs Name&lt;/th&gt;&#10;&lt;th&gt;Purpose &amp;amp; Pattern&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Ctrl&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Control&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Moves or acts on small physical units (characters, lines)&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Alt&lt;/code&gt; or &lt;code&gt;Option&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Meta&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Moves or acts on larger semantic units (words, sentences)&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;S&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Shift&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Shift&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Selects regions or modifies casing and symbols&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;&#10;These symbols are combined with dashes to form key chords. The table below lists common chords and what they do:&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Emacs Symbol&lt;/th&gt;&#10;&lt;th&gt;Keyboard Key&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-f&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Control+f&lt;/code&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-f&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Alt+f&lt;/code&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-M-n&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Control+alt+n&lt;/code&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-S-c&lt;/code&gt; / &lt;code class="verbatim"&gt;C-C&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Control+C&lt;/code&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-5" class="outline-3"&gt;&#10;&lt;h3 id="headline-5"&gt;&#10;Key Sequences&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-5" class="outline-text-3"&gt;&#10;&lt;p&gt;Key sequences are combination of key chords typed in order rather than pressed all at once. They are represented by a &lt;code&gt;prefix key&lt;/code&gt; followed by symbols of keys or chords separated by spaces:&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Emacs Symbol&lt;/th&gt;&#10;&lt;th&gt;Keyboard Key&lt;/th&gt;&#10;&lt;th&gt;Prefix Key (First Chord)&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x C-f&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Control+x&lt;/code&gt; followed by &lt;code&gt;Control+f&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x&lt;/code&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x&lt;/code&gt; &lt;code class="verbatim"&gt;p&lt;/code&gt; &lt;code class="verbatim"&gt;p&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Control+x&lt;/code&gt; followed by &lt;code&gt;p&lt;/code&gt; then &lt;code&gt;p&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x&lt;/code&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-h&lt;/code&gt; &lt;code class="verbatim"&gt;k&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;Control+h&lt;/code&gt; followed by &lt;code&gt;k&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-h&lt;/code&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-6" class="outline-2"&gt;&#10;&lt;h2 id="headline-6"&gt;&#10;Essential Commands&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-6" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;Before learning how to move around, you need to know how to get out of trouble and how to execute commands.&lt;/p&gt;&#10;&lt;div id="outline-container-headline-7" class="outline-3"&gt;&#10;&lt;h3 id="headline-7"&gt;&#10;The Command Palette: M-x&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-7" class="outline-text-3"&gt;&#10;&lt;p&gt;This guide is all about hands-on practice, so fire up &lt;code&gt;Emacs&lt;/code&gt; and press &lt;code class="verbatim"&gt;M-x&lt;/code&gt;. You should see something like the screenshot below. If so, congrats! You&amp;#39;re looking at the &lt;code&gt;minibuffer&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;&#10;From here, start typing a command name. You can fuzzy search by typing space separated keywords (like &lt;code class="verbatim"&gt;prev line&lt;/code&gt;). The list will filter down as you type. Alongside each command, the minibuffer displays its keybinding and a brief description. It’s the best way to discover new commands on the fly and a lifesaver when you forget a keybinding.&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img src="imgs/meta-x.jpeg" alt="imgs/meta-x.jpeg" title="imgs/meta-x.jpeg" /&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-8" class="outline-3"&gt;&#10;&lt;h3 id="headline-8"&gt;&#10;The Panic Button: C-g&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-8" class="outline-text-3"&gt;&#10;&lt;p&gt;&lt;code class="verbatim"&gt;C-g&lt;/code&gt; (&lt;code&gt;keyboard-quit&lt;/code&gt;) is your universal escape keybinding. It aborts incomplete key sequences, cancels active prompts, and returns you safely back to your buffer. Try out pressing &lt;code class="verbatim"&gt;C-g&lt;/code&gt; (&lt;code&gt;keyboard-quit&lt;/code&gt;) after pressing &lt;code class="verbatim"&gt;M-x&lt;/code&gt; (&lt;code&gt;execute-extended-command&lt;/code&gt;), you should notice that the &lt;code&gt;minibuffer&lt;/code&gt; will be closed.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Note: Throughout this guide, I use the format &lt;code class="verbatim"&gt;key&lt;/code&gt; (&lt;code&gt;command-name&lt;/code&gt;) to show both the keybinding and its underlying Emacs command. For example, &lt;code class="verbatim"&gt;C-g&lt;/code&gt; (&lt;code&gt;keyboard-quit&lt;/code&gt;) means pressing &lt;code class="verbatim"&gt;C-g&lt;/code&gt; executes the &lt;code&gt;keyboard-quit&lt;/code&gt; function.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&#10;You now know the two essential commands I want you to remember along with their keybindings. I won&amp;#39;t ask you for now to remember any more keybindings or commands, I just want you to know that they exist.&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function Name&lt;/th&gt;&#10;&lt;th&gt;Action&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-x&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;execute-extended-command&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Invokes any Emacs command by name&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-g&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;keyboard-quit&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Universal panic button, cancels active prompts and operations&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-9" class="outline-3"&gt;&#10;&lt;h3 id="headline-9"&gt;&#10;Font Scaling&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-9" class="outline-text-3"&gt;&#10;&lt;p&gt;If text looks smaller or larger than what you expected, these commands help you scale it up or down.&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function Name&lt;/th&gt;&#10;&lt;th&gt;Action&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x C-+&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;text-scale-increase&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Enlarges buffer font size&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x C--&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;text-scale-decrease&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Decreases buffer font size&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x C-=&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;text-scale-adjust&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Resets buffer font scale back to default&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Note: As mentioned earlier, there&amp;#39;s no need to memorize keybindings. Instead, notice that all of these commands begin with &lt;code class="verbatim"&gt;text-scale&lt;/code&gt;. You can run them directly by name via &lt;code class="verbatim"&gt;M-x&lt;/code&gt;. When you do, Emacs displays their associated shortcuts right alongside them and will even nudge you with a reminder to use the shortcut next time. Over time, muscle memory takes over and you won&amp;#39;t need &lt;code class="verbatim"&gt;M-x&lt;/code&gt; as often. It just takes a little practice and patience.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-10" class="outline-2"&gt;&#10;&lt;h2 id="headline-10"&gt;&#10;Text Navigation&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-10" class="outline-text-2"&gt;&#10;&lt;p&gt;There is clear mnemonic logic behind Emacs navigation keys, which can make them easier to recall early on. Once muscle memory kicks in, you won&amp;#39;t even think about the letters anymore. If these mnemonics don&amp;#39;t click for you, feel free to skip them:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;f&lt;/code&gt; for Forward&lt;/li&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;b&lt;/code&gt; for Backward&lt;/li&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;n&lt;/code&gt; for Next line&lt;/li&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;p&lt;/code&gt; for Previous line&lt;/li&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;a&lt;/code&gt; for Ahead (start of line)&lt;/li&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;e&lt;/code&gt; for End of line&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div id="outline-container-headline-11" class="outline-3"&gt;&#10;&lt;h3 id="headline-11"&gt;&#10;Short-Range Navigation&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-11" class="outline-text-3"&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function&lt;/th&gt;&#10;&lt;th&gt;What It Does&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-f&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;forward-char&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Step forward one character&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-b&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;backward-char&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Step backward one character&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-n&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;next-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Move down to the next line&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-p&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;previous-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Move up to the previous line&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-a&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;move-beginning-of-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump to the very beginning of the line&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-e&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;move-end-of-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump to the end of the line&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-m&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;back-to-indentation&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump to the first non-whitespace character on the line&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-f&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;forward-word&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Step forward one word&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-b&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;backward-word&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Step backward one word&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-12" class="outline-3"&gt;&#10;&lt;h3 id="headline-12"&gt;&#10;Long-Range Navigation&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-12" class="outline-text-3"&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function&lt;/th&gt;&#10;&lt;th&gt;What It Does&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-a&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;backward-sentence&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump to the beginning of the sentence&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-e&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;forward-sentence&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump to the end of the sentence&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-{&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;backward-paragraph&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump up to the previous paragraph boundary&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-}&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;forward-paragraph&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump down to the next paragraph boundary&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-&amp;lt;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;beginning-of-buffer&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump to the absolute beginning of the buffer&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;end-of-buffer&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump to the absolute end of the buffer&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-g g&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;goto-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Prompt for a line number and jump straight to it&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-g c&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;goto-char&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Jump to a specific character offset&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-13" class="outline-3"&gt;&#10;&lt;h3 id="headline-13"&gt;&#10;Universal Argument (C-u)&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-13" class="outline-text-3"&gt;&#10;&lt;p&gt;What if you need to execute a command like &lt;code class="verbatim"&gt;C-n&lt;/code&gt; (&lt;code&gt;next-line&lt;/code&gt;) 10 times?&lt;/p&gt;&#10;&lt;p&gt;&#10;Use &lt;code class="verbatim"&gt;C-u&lt;/code&gt; (&lt;code&gt;universal-argument&lt;/code&gt;). Hit &lt;code class="verbatim"&gt;C-u 10 C-n&lt;/code&gt;, and Emacs repeats the command 10 times. Passing &lt;code class="verbatim"&gt;C-u&lt;/code&gt; without typing a number defaults to a multiplier of 4 (&lt;code class="verbatim"&gt;C-u C-n&lt;/code&gt; moves down 4 lines).&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-14" class="outline-2"&gt;&#10;&lt;h2 id="headline-14"&gt;&#10;Deletion, Editing &amp;amp; The Kill Ring&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-14" class="outline-text-2"&gt;&#10;&lt;p&gt;A new concept and term to learn before proceeding is &lt;code&gt;Kill Ring&lt;/code&gt;, it&amp;#39;s a clipboard with history that stores every piece of text you cut or copy. Because &lt;code&gt;Emacs&lt;/code&gt; was created long before modern conventions like cut, copy, paste, and clipboard were standardized, it invented its own concepts and terminology to describe them.&lt;/p&gt;&#10;&lt;div id="outline-container-headline-15" class="outline-3"&gt;&#10;&lt;h3 id="headline-15"&gt;&#10;Deletion vs. Killing&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-15" class="outline-text-3"&gt;&#10;&lt;p&gt;Emacs strictly separates two ideas:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;strong&gt;Deletion:&lt;/strong&gt;&lt;/strong&gt; Discards text permanently.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;strong&gt;Killing:&lt;/strong&gt;&lt;/strong&gt; Cuts text and saves it into the &lt;code&gt;Kill Ring&lt;/code&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function&lt;/th&gt;&#10;&lt;th&gt;Behavior&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;DEL&lt;/code&gt; / &lt;code class="verbatim"&gt;BACKSPACE&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;delete-backward-char&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Deletes previous character (not saved to kill ring)&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-d&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;delete-char&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Deletes character under cursor&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-DEL&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;backward-kill-word&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Cuts preceding word into kill ring&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-d&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;kill-word&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Cuts next word into kill ring&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-k&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;kill-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Cuts from cursor to end of line (hit again to kill the newline)&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-S-BACKSPACE&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;kill-whole-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Cuts current line (including newline)&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-k&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;kill-sentence&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Cuts forward to end of sentence&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-z &amp;lt;char&amp;gt;&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;zap-to-char&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Cuts everything from cursor up to the specified character&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-16" class="outline-3"&gt;&#10;&lt;h3 id="headline-16"&gt;&#10;Yanking and Cycling the Kill Ring&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-16" class="outline-text-3"&gt;&#10;&lt;p&gt;In Emacs terminology, pasting is called &lt;code&gt;Yanking&lt;/code&gt;. Another key concept to learn before proceeding is &lt;code&gt;Region&lt;/code&gt;, it&amp;#39;s the currently highlighted/selected text in a &lt;code&gt;buffer&lt;/code&gt;. While you can click and drag with your mouse like in a web browser, the Emacs way is to press &lt;code class="verbatim"&gt;C-SPC&lt;/code&gt; (&lt;code&gt;set-mark-command&lt;/code&gt;). This sets a marker at your cursor, moving anywhere with standard navigation keys will then expand the highlighted region. We’ll dive deeper into this later but this is more than enough to get you started.&lt;/p&gt;&#10;&lt;p&gt;&#10;It&amp;#39;s also worth noting how &lt;code&gt;Emacs&lt;/code&gt; thinks about selections under the hood. The cursor position is called the &lt;code&gt;Point&lt;/code&gt;. When you press &lt;code class="verbatim"&gt;C-SPC&lt;/code&gt; (&lt;code&gt;set-mark-command&lt;/code&gt;), you store current &lt;code&gt;Point&lt;/code&gt; position into the &lt;code&gt;Mark&lt;/code&gt;. As you navigate away, the area bounded between &lt;code&gt;Point&lt;/code&gt; and &lt;code&gt;Mark&lt;/code&gt; becomes the active &lt;code&gt;Region&lt;/code&gt;.&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Note: Don&amp;#39;t forget your panic button, &lt;code class="verbatim"&gt;C-g&lt;/code&gt; (&lt;code&gt;keyboard-quit&lt;/code&gt;)! It instantly clears an active mark and cancels the selection.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function&lt;/th&gt;&#10;&lt;th&gt;Behavior&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-w&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;kill-region&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Cuts the active region&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-w&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;kill-ring-save&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Copies the active region&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-y&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;yank&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Pastes most recent entry from the kill ring&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-y&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;yank-pop&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Pastes a selected entry from the kill ring&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-17" class="outline-3"&gt;&#10;&lt;h3 id="headline-17"&gt;&#10;Formatting &amp;amp; Indentation&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-17" class="outline-text-3"&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function&lt;/th&gt;&#10;&lt;th&gt;Action&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-o&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;open-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;inserts a newline after the point and keeps the cursor position&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-M-o&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;split-line&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Splits line at point&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-SPC&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;cycle-spacing&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Cycles whitespace around point (single space, no space, original)&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-^&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;delete-indentation&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Joins current line with the line above&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-18" class="outline-2"&gt;&#10;&lt;h2 id="headline-18"&gt;&#10;Case Transformations &amp;amp; History Recovery&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-18" class="outline-text-2"&gt;&#10;&lt;div id="outline-container-headline-19" class="outline-3"&gt;&#10;&lt;h3 id="headline-19"&gt;&#10;Text Case Manipulation&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-19" class="outline-text-3"&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function&lt;/th&gt;&#10;&lt;th&gt;Action&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-u&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;upcase-word&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Converts remainder of word at point to UPPERCASE&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-l&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;downcase-word&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Converts remainder of word at point to lowercase&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;M-c&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;capitalize-word&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Capitalizes the leading letter of the word at point&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x C-u&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;upcase-region&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Converts active region to UPPERCASE&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-x C-l&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;downcase-region&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Converts active region to lowercase&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-20" class="outline-3"&gt;&#10;&lt;h3 id="headline-20"&gt;&#10;Undo, Redo, and Recovery&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-20" class="outline-text-3"&gt;&#10;&lt;p&gt;Emacs offers powerful ways to navigate edit history, but for simplicity, your step is configured to follow conventional &lt;code&gt;undo&lt;/code&gt; and &lt;code&gt;redo&lt;/code&gt; behavior.&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Keybinding&lt;/th&gt;&#10;&lt;th&gt;Function&lt;/th&gt;&#10;&lt;th&gt;Action&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-_&lt;/code&gt; or &lt;code class="verbatim"&gt;C-/&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;undo&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Undo previous changes&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code class="verbatim"&gt;C-M-_&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;undo-redo&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Redo undone changes&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;/td&gt;&#10;&lt;td&gt;&lt;code&gt;revert-buffer&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;Reloads the file fresh from disk&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;Note: Leaving the keybinding empty for &lt;code&gt;revert-buffer&lt;/code&gt; isn&amp;#39;t a typo! Emacs comes with thousands of built-in commands and that number grows as you install packages and write your own functions. Only a fraction of commands are bound to keys. Later, you&amp;#39;ll learn how to assign custom shortcuts to your most frequent commands. In the meantime, any unbound command can be run anytime via &lt;code class="verbatim"&gt;M-x&lt;/code&gt; (&lt;code&gt;execute-extended-command&lt;/code&gt;).&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-21" class="outline-2"&gt;&#10;&lt;h2 id="headline-21"&gt;&#10;What&amp;#39;s Next?&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-21" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;In &lt;a href="../emacs-survival-guide-03/"&gt;Part 3: Search and Replace &amp;amp; Text Selection&lt;/a&gt;, we will explore Emacs&amp;#39;s Incremental Search (&lt;code&gt;isearch&lt;/code&gt;), query replacements, Occur mode, and how the mark and region system work in detail.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item><item><title>1- Emacs Terminology (Emacs Survival Guide)</title><link>https://www.ozbem.com/posts/tech/emacs/emacs-survival-guide-01/</link><pubDate>Mon, 03 Aug 2026 00:00:00 +0000</pubDate><author>info@ozbem.com (ebeem)</author><guid>https://www.ozbem.com/posts/tech/emacs/emacs-survival-guide-01/</guid><description>&#10;&lt;div id="outline-container-headline-1" class="outline-2"&gt;&#10;&lt;h2 id="headline-1"&gt;&#10;Introduction&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-1" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;Calling Emacs simply a text editor is like calling Windows a text editor just because it happens to ship with &lt;code&gt;Notepad&lt;/code&gt;. At its core, Emacs is an interactive Emacs Lisp (&lt;code&gt;Elisp&lt;/code&gt;) environment layered on top of a &lt;code&gt;C&lt;/code&gt; engine. On top of this runtime environment, an entire ecosystem is built: a text editor, web browser, calculator, calendar, mail and news reader, RSS reader, IRC client, Tetris game, and countless other utilities. While all of these tools come built into Emacs out of the box, the community has also created thousands of third-party packages using that very same environment.&lt;/p&gt;&#10;&lt;p&gt;&#10;Emacs is best described as an &lt;code class="verbatim"&gt;extensible&lt;/code&gt;, &lt;code class="verbatim"&gt;self-documenting&lt;/code&gt;, and primarily &lt;code class="verbatim"&gt;keyboard-driven&lt;/code&gt; computing environment:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;Extensible&lt;/code&gt;: Virtually all built-in tools, workflows, and core components can be customized or entirely replaced.&lt;/li&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;Self-documenting&lt;/code&gt;: All the help and reference material you need is available directly inside &lt;code&gt;Emacs&lt;/code&gt;. You can explore, inspect, and learn Emacs using its own introspection tools.&lt;/li&gt;&#10;&lt;li&gt;&lt;code class="verbatim"&gt;Keyboard-driven&lt;/code&gt;: While mouse support is available, Emacs is designed to be driven entirely by the keyboard. Investing in a good ergonomic split keyboard and learning touch typing is very rewarding.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;figure&gt;&#10;&lt;p&gt;&#10;&lt;img src="./imgs/Emacs Architecture.svg" alt="./imgs/Emacs Architecture.svg" title="./imgs/Emacs Architecture.svg" /&gt;&lt;/p&gt;&#10;&lt;figcaption&gt;&#10;Diagram of the Emacs architecture: built-in and third-party tools layered over the Elisp runtime and core C engine&#10;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;&#10;This section might seem boring at first, but understanding Emacs terminology is essential. It clarifies how Emacs is structured, making it far easier to master its commands and navigate its documentation.&lt;/p&gt;&#10;&lt;p&gt;&#10;Emacs was developed in the 1970s and it predates modern graphical desktop conventions by more than a decade. Its vocabulary can feel counterintuitive to newcomers used to modern operating systems. To bridge that gap, this guide maps Emacs terms to their counterparts in &lt;code&gt;VSCode&lt;/code&gt;. &lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; These comparisons help you understand the terminology, but you should adopt native Emacs terminology by calling components by their proper names which will make manuals and community tutorials much easier to follow.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;div id="outline-container-headline-2" class="outline-3"&gt;&#10;&lt;h3 id="headline-2"&gt;&#10;Frame&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-2" class="outline-text-3"&gt;&#10;&lt;p&gt;A &lt;strong&gt;Frame&lt;/strong&gt; is an independent operating system window. Just as you can open multiple &lt;code&gt;VSCode&lt;/code&gt; windows across different monitors, you can spawn multiple Emacs &lt;strong&gt;Frames&lt;/strong&gt; across your screens.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-3" class="outline-3"&gt;&#10;&lt;h3 id="headline-3"&gt;&#10;Window&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-3" class="outline-text-3"&gt;&#10;&lt;p&gt;An Emacs &lt;strong&gt;Window&lt;/strong&gt; is a pane inside a &lt;strong&gt;Frame&lt;/strong&gt;. Just as you can split your &lt;code&gt;VSCode&lt;/code&gt; editor area into vertical or horizontal panes to view different files side by side, you can split an Emacs &lt;strong&gt;Frame&lt;/strong&gt; into multiple &lt;strong&gt;Windows&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-4" class="outline-3"&gt;&#10;&lt;h3 id="headline-4"&gt;&#10;Buffer&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-4" class="outline-text-3"&gt;&#10;&lt;p&gt;A &lt;strong&gt;Buffer&lt;/strong&gt; is an in-memory object containing text or binary data. You can think of it as an open file/tab inside &lt;code&gt;VSCode&lt;/code&gt;.&lt;/p&gt;&#10;&lt;p&gt;&#10;Emacs buffers fall into three primary categories:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;File-Visiting Buffers:&lt;/strong&gt; Associated with persistent files on disk, such as source code files and notes.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Process Buffers:&lt;/strong&gt; Driven by underlying system processes, such as terminal emulators and compilation outputs.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Internal Buffers:&lt;/strong&gt; Utilities maintained directly by Emacs, typically named with surrounding asterisks (such as &lt;code class="verbatim"&gt;*scratch*&lt;/code&gt; for Elisp scratchpads and &lt;code class="verbatim"&gt;*Messages*&lt;/code&gt; for runtime logs).&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-5" class="outline-3"&gt;&#10;&lt;h3 id="headline-5"&gt;&#10;Mode Line&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-5" class="outline-text-3"&gt;&#10;&lt;p&gt;A &lt;strong&gt;Mode Line&lt;/strong&gt; is a status bar displayed at the bottom of every Emacs &lt;strong&gt;Window&lt;/strong&gt;. It functions like the status bar in &lt;code&gt;VSCode&lt;/code&gt;, reporting diagnostics such as modification state, current line number, and file encoding. Unlike &lt;code&gt;VSCode&lt;/code&gt;&amp;#39;s single global bar, every active window in Emacs has its own dedicated &lt;strong&gt;Mode Line&lt;/strong&gt;.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-6" class="outline-3"&gt;&#10;&lt;h3 id="headline-6"&gt;&#10;Echo Area&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-6" class="outline-text-3"&gt;&#10;&lt;p&gt;The &lt;strong&gt;Echo Area&lt;/strong&gt; is a single-line output display at the bottom of the Emacs &lt;strong&gt;Frame&lt;/strong&gt;. It displays short status updates, error alerts, and function output, serving a purpose similar to the bottom output or notification panel in modern editors.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-7" class="outline-3"&gt;&#10;&lt;h3 id="headline-7"&gt;&#10;Minibuffer&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-7" class="outline-text-3"&gt;&#10;&lt;p&gt;The &lt;strong&gt;Minibuffer&lt;/strong&gt; is an interactive prompt at the bottom of the frame that activates whenever Emacs needs user input. It functions similarly to &lt;code&gt;VSCode&lt;/code&gt;&amp;#39;s Command Palette, prompting for commands, file names, or search queries.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-8" class="outline-3"&gt;&#10;&lt;h3 id="headline-8"&gt;&#10;Major Mode&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-8" class="outline-text-3"&gt;&#10;&lt;p&gt;Every buffer has exactly one &lt;strong&gt;Major Mode&lt;/strong&gt; active at any time. It governs fundamental behaviors including syntax highlighting, indentation rules, and language-specific keybindings like Python mode, Rust mode, and Org mode.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-9" class="outline-3"&gt;&#10;&lt;h3 id="headline-9"&gt;&#10;Minor Mode&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-9" class="outline-text-3"&gt;&#10;&lt;p&gt;&lt;strong&gt;Minor Modes&lt;/strong&gt; are modular, optional features layered on top of the&#10;active major mode. Multiple minor modes can run concurrently in a single buffer, providing granular functionality such as line numbers, on-the-fly spell checking, and auto-saving.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-10" class="outline-3"&gt;&#10;&lt;h3 id="headline-10"&gt;&#10;Recap&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-10" class="outline-text-3"&gt;&#10;&lt;figure&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Emacs can have many &lt;code&gt;frames&lt;/code&gt; open.&lt;/li&gt;&#10;&lt;li&gt;Each &lt;code&gt;frame&lt;/code&gt; has 1 or more &lt;code&gt;windows&lt;/code&gt;, 1 &lt;code&gt;echo area&lt;/code&gt;, and 1 &lt;code&gt;minibuffer&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;Each &lt;code&gt;window&lt;/code&gt; has 1 &lt;code&gt;buffer&lt;/code&gt; and 1 &lt;code&gt;modeline&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;Each &lt;code&gt;buffer&lt;/code&gt; has data/content, 1 active &lt;code&gt;major mode,&lt;/code&gt; and as many active &lt;code&gt;minor modes&lt;/code&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;figcaption&gt;&#10;Image shows an Emacs buffer with 3 windows, 3 modelines, and 2 buffers.&#10;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;&lt;img src="./imgs/Emacs Components.svg" alt="./imgs/Emacs Components.svg" title="./imgs/Emacs Components.svg" /&gt;&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-11" class="outline-2"&gt;&#10;&lt;h2 id="headline-11"&gt;&#10;Discovery and Completion&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-11" class="outline-text-2"&gt;&#10;&lt;p&gt;I still remember very well the first time I downloaded and ran &lt;code&gt;Emacs&lt;/code&gt; back in 2008. I&amp;#39;m certain I said something along the lines of, &amp;#34;Meh, this definitely isn&amp;#39;t my type of text editor.&amp;#34; Out of the box, Emacs is plain and confusing for newcomers, it also has a steep learning curve. However, there is a good reason so many developers stick with it and treat it almost as a way of life, there simply is no other tool that offers what &lt;code&gt;Emacs&lt;/code&gt; provides.&lt;/p&gt;&#10;&lt;figure&gt;&#10;&lt;p&gt;&#10;&lt;img src="imgs/emacs-vanilla-vs-customized.png" alt="imgs/emacs-vanilla-vs-customized.png" title="imgs/emacs-vanilla-vs-customized.png" /&gt;&lt;/p&gt;&#10;&lt;figcaption&gt;&#10;On the left is a customized Emacs setup; on the right is vanilla Emacs without any customizations.&#10;&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;&#10;I prepared a minimal helpful starter kit. For now, do not worry about the Lisp syntax or how every detail works under the hood. We will break down package management and configuration step by step in future articles. The goal right now is simply to give you a polished and modern environment.&lt;/p&gt;&#10;&lt;div id="outline-container-headline-12" class="outline-3"&gt;&#10;&lt;h3 id="headline-12"&gt;&#10;Locating Your Configuration File&#10;&lt;/h3&gt;&#10;&lt;div id="outline-text-headline-12" class="outline-text-3"&gt;&#10;&lt;p&gt;&#10;Emacs stores its user configuration in a file called &lt;code class="verbatim"&gt;init.el&lt;/code&gt;. If this file does not exist yet, you can create it in the following locations depending on your operating system:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Linux &amp;amp; macOS:&lt;/strong&gt; &lt;code class="verbatim"&gt;~/.emacs.d/init.el&lt;/code&gt; or &lt;code class="verbatim"&gt;~/.config/emacs/init.el&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Windows:&lt;/strong&gt; &lt;code class="verbatim"&gt;%APPDATA%/.emacs.d/init.el&lt;/code&gt; (typically &lt;code class="verbatim"&gt;C:/Users/&amp;lt;Username&amp;gt;/AppData/Roaming/.emacs.d/init.el&lt;/code&gt;)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Open or create &lt;code class="verbatim"&gt;init.el&lt;/code&gt;, replace its contents with the configuration below, and restart Emacs. If the file was loaded successfully, you will notice your Emacs became dark themed.&lt;/p&gt;&#10;&lt;div class="src src-emacs-lisp"&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-emacs-lisp" data-lang="emacs-lisp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;;; init.el --- Minimal configuration for Emacs 31 -*- lexical-binding: t; -*-&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;;; package management&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;package&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-to-list&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;package-archives&lt;/span&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;gnu&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;https://elpa.gnu.org/packages/&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;package-initialize&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;use-package&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;undo-no-redo&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;global-display-line-numbers-mode&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;set-face-attribute&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;default&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;;:family &amp;#34;Iosevka&amp;#34; ;; change this font to your preferred one&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:height&lt;/span&gt; &lt;span class="mi"&gt;180&lt;/span&gt; &lt;span class="c1"&gt;;; you can increase/decrease font size here&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:weight&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;bold&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;;; theme&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;use-package&lt;/span&gt; &lt;span class="nv"&gt;modus-themes&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:ensure&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:config&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;load-theme&lt;/span&gt; &lt;span class="ss"&gt;&amp;#39;modus-vivendi-tinted&lt;/span&gt; &lt;span class="nb"&gt;:no-confirm&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;;; which-key (built-in starting in emacs 30)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;use-package&lt;/span&gt; &lt;span class="nv"&gt;which-key&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:ensure&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:init&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;which-key-mode&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; vertico: minimal vertical minibuffer completion ui&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;use-package&lt;/span&gt; &lt;span class="nv"&gt;vertico&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:ensure&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:init&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;vertico-mode&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; orderless: flexible space-separated fuzzy/pattern matching&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;use-package&lt;/span&gt; &lt;span class="nv"&gt;orderless&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:ensure&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:custom&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;completion-styles&lt;/span&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;orderless&lt;/span&gt; &lt;span class="nv"&gt;basic&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;completion-category-defaults&lt;/span&gt; &lt;span class="no"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;completion-category-overrides&lt;/span&gt; &lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;file&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;styles&lt;/span&gt; &lt;span class="nv"&gt;partial-completion&lt;/span&gt;&lt;span class="p"&gt;)))))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;; marginalia: rich contextual annotations in the minibuffer margin&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;use-package&lt;/span&gt; &lt;span class="nv"&gt;marginalia&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:ensure&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;:init&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;marginalia-mode&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;;; sensible ui defaults&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;inhibit-startup-screen&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;menu-bar-mode&lt;/span&gt; &lt;span class="mi"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;tool-bar-mode&lt;/span&gt; &lt;span class="mi"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;scroll-bar-mode&lt;/span&gt; &lt;span class="mi"&gt;-1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;;;; init.el ends here&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;div id="outline-container-headline-13" class="outline-2"&gt;&#10;&lt;h2 id="headline-13"&gt;&#10;What&amp;#39;s Next?&#10;&lt;/h2&gt;&#10;&lt;div id="outline-text-headline-13" class="outline-text-2"&gt;&#10;&lt;p&gt;&#10;Understanding the separation between frames, windows, buffers, and modes establishes a solid foundation for everything that follows.&lt;/p&gt;&#10;&lt;p&gt;&#10;In &lt;a href="../emacs-survival-guide-02/"&gt;Part 2: User Input &amp;amp; Text Navigation&lt;/a&gt;, we explore the Emacs input hierarchy, modifier chords, and motion primitives.&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&#10;</description></item></channel></rss>