guide/03-keys.html
1116 lines · 169151 bytes
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<meta name="viewport" content="width=device-width, initial-scale=1">
6<title>Keys and commands · Orgstar</title>
7<meta name="description" content="The three key presets, prefix keys and key hints, the echo area, the command palette, Option as Meta, keymap.toml, Vim editing in the Doom preset,…">
8<link rel="icon" href="../favicon.svg" type="image/svg+xml">
9<link rel="stylesheet" href="../theme.css">
10<link rel="stylesheet" href="../syntax.css">
11<link rel="stylesheet" href="../style.css">
12</head>
13<body>
14<header class="site">
15<a class="site-title" href="../index.html">Orgstar</a>
16<nav>
17<a href="../install.html">Install</a>
18<a href="../quickstart.html">Quick start</a>
19<a href="index.html">Manual</a>
20</nav>
21</header>
22<main>
23<h1>Keys and commands</h1>
24<p class="lede">Every action in Orgstar is a named command; a keymap preset decides which keys run which commands, and keymap.toml lets you change that.</p>
25<nav class="toc" aria-label="On this page">
26<h2>On this page</h2>
27<ul>
28<li><a href="#commands-and-keymaps">Commands and keymaps</a></li>
29<li><a href="#choosing-a-preset">Choosing a preset</a></li>
30<li><a href="#option-as-meta">Option as Meta</a></li>
31<li><a href="#how-keys-reach-commands">How keys reach commands</a>
32<ul>
33<li><a href="#contexts">Contexts</a></li>
34<li><a href="#prefix-keys-and-key-hints">Prefix keys and key hints</a></li>
35</ul></li>
36<li><a href="#the-echo-area">The echo area</a></li>
37<li><a href="#the-command-palette">The command palette</a></li>
38<li><a href="#menu-shortcuts">Menu shortcuts</a></li>
39<li><a href="#speed-keys">Speed keys</a></li>
40<li><a href="#customizing-keys-keymap-toml">Customizing keys: keymap.toml</a>
41<ul>
42<li><a href="#format">Format</a></li>
43<li><a href="#key-notation">Key notation</a></li>
44<li><a href="#priority">Priority</a></li>
45<li><a href="#unbinding">Unbinding</a></li>
46<li><a href="#doom-states">Doom states</a></li>
47<li><a href="#more-examples">More examples</a></li>
48<li><a href="#reloading-and-errors">Reloading and errors</a></li>
49<li><a href="#importing-from-emacs">Importing from Emacs</a></li>
50</ul></li>
51<li><a href="#vim-editing-doom-preset">Vim editing (Doom preset)</a>
52<ul>
53<li><a href="#how-keys-are-handled">How keys are handled</a></li>
54<li><a href="#states">States</a></li>
55<li><a href="#motions">Motions</a></li>
56<li><a href="#operators">Operators</a></li>
57<li><a href="#text-objects">Text objects</a></li>
58<li><a href="#counts-and-registers">Counts and registers</a></li>
59<li><a href="#repeat">Repeat</a></li>
60<li><a href="#macros">Macros</a></li>
61<li><a href="#marks-and-jumps">Marks and jumps</a></li>
62<li><a href="#visual-states">Visual states</a></li>
63<li><a href="#surround">Surround</a></li>
64<li><a href="#commenting">Commenting</a></li>
65<li><a href="#org-keys-in-normal-state">Org keys in normal state</a></li>
66<li><a href="#the-leader">The leader</a></li>
67<li><a href="#ex-commands">Ex commands</a></li>
68<li><a href="#not-available">Not available</a></li>
69</ul></li>
70<li><a href="#keys-in-other-windows">Keys in other windows</a></li>
71<li><a href="#ios-and-ipados">iOS and iPadOS</a></li>
72<li><a href="#key-reference">Key reference</a>
73<ul>
74<li><a href="#movement-and-the-region">Movement and the region</a></li>
75<li><a href="#editing">Editing</a></li>
76<li><a href="#outline-visibility-and-narrowing">Outline: visibility and narrowing</a></li>
77<li><a href="#outline-headings-and-subtrees">Outline: headings and subtrees</a></li>
78<li><a href="#lists-and-checkboxes">Lists and checkboxes</a></li>
79<li><a href="#todo-priority-and-tags">TODO, priority and tags</a></li>
80<li><a href="#properties-and-column-view">Properties and column view</a></li>
81<li><a href="#dates-and-clocking">Dates and clocking</a></li>
82<li><a href="#tables">Tables</a></li>
83<li><a href="#links-and-footnotes">Links and footnotes</a></li>
84<li><a href="#code-blocks-and-c-c-c-c">Code blocks and C-c C-c</a></li>
85<li><a href="#agenda-and-capture">Agenda and capture</a></li>
86<li><a href="#export">Export</a></li>
87<li><a href="#files-buffers-and-the-app">Files, buffers and the app</a></li>
88<li><a href="#unbound-commands">Unbound commands</a></li>
89<li><a href="#speed-keys-reference">Speed keys reference</a></li>
90</ul></li>
91</ul>
92</nav>
93<h2 id="commands-and-keymaps">Commands and keymaps</h2>
94<p>Each action has a command id such as <code class="verbatim">org.todo.cycle</code> and a title such as <em>Cycle TODO State</em>. Keys, the Org menu, the command palette and the iOS key bar all run commands by id. A keymap maps key sequences to command ids. Orgstar ships three keymaps, called presets, and reads your own bindings from <code class="verbatim">keymap.toml</code> on top of the one you choose.</p>
95<p>Ids starting with <code class="verbatim">org.</code> are Org commands and run only in Org files. Ids starting with <code class="verbatim">edit.</code> are text-system actions (movement, killing, find). Ids starting with <code class="verbatim">app.</code> are carried out by the app: saving, buffers, windows, export. <code class="verbatim">editor.</code> ids change how the editor behaves. The <a href="#key-reference">key reference</a> at the end of this chapter lists every bound command with its keys in each preset.</p>
96<h2 id="choosing-a-preset">Choosing a preset</h2>
97<p>Choose a preset in Settings ▸ General ▸ Keys, or with <code class="verbatim">keymap</code> in the <code class="verbatim">[orgstar]</code> table of <code class="verbatim">config.toml</code> (see <a href="13-configuration.html">Configuration</a>). The change applies at once.</p>
98<table>
99<thead>
100<tr><th>Preset</th><th><code class="verbatim">config.toml</code> value</th><th>What it is</th></tr>
101</thead>
102<tbody>
103<tr><td>Emacs</td><td><code class="verbatim">"emacs"</code></td><td>Emacs and Org keys: <code class="verbatim">C-f</code>, <code class="verbatim">C-k</code>, <code class="verbatim">C-x C-s</code>, <code class="verbatim">C-c C-t</code>, <code class="verbatim">M-RET</code>, <code class="verbatim">M-<left></code>. The default.</td></tr>
104<tr><td>Mac</td><td><code class="verbatim">"mac"</code></td><td>Standard macOS text keys stay as they are. Org commands use Control-Command chords (<code class="verbatim">⌃⌘T</code>, <code class="verbatim">⌃⌘←</code>), which macOS text editing leaves free.</td></tr>
105<tr><td>Doom (Vim keys)</td><td><code class="verbatim">"doom"</code></td><td>Modal editing as in Doom Emacs with evil and evil-org: normal, insert and visual states, the <code class="verbatim">SPC</code> leader and <code class="verbatim">SPC m</code> local leader, plus the Emacs preset's Org keys in every state.</td></tr>
106</tbody>
107</table>
108<p>The Mac preset binds fewer commands than the others. <code class="verbatim">⌃⌘X</code> is its <code class="verbatim">C-c C-c</code>, <code class="verbatim">⌘K</code> inserts a link and <code class="verbatim">⇧⌘E</code> opens the export sheet; the <a href="#key-reference">key reference</a> lists the rest. It has no keys for agenda, capture or the single export formats. Run those from the Org menu, from the command palette (<code class="verbatim">⇧⌘P</code>), from a menu shortcut (Agenda <code class="verbatim">⇧⌘A</code>, Capture <code class="verbatim">⇧⌘N</code>), or bind them yourself in <code class="verbatim">keymap.toml</code>.</p>
109<p>In the Emacs and Mac presets, and in Doom's insert state, macOS's own text keys keep working where the preset does not bind the key: <code class="verbatim">⌥←</code>, <code class="verbatim">⌘←</code>, <code class="verbatim">⇧</code> with arrows to select, and the Control keys the macOS text system provides (<code class="verbatim">⌃A</code>, <code class="verbatim">⌃E</code>, <code class="verbatim">⌃K</code> and so on). Menu shortcuts such as <code class="verbatim">⌘S</code> and <code class="verbatim">⌘F</code> work in every preset; see <a href="#menu-shortcuts">Menu shortcuts</a>.</p>
110<h2 id="option-as-meta">Option as Meta</h2>
111<p>Emacs notation writes Meta as <code class="verbatim">M-</code>. On a Mac keyboard Meta is the Option key, but Option also types characters such as <code class="verbatim">é</code> and <code class="verbatim">ø</code>. Settings ▸ General ▸ Option as Meta picks which Option keys act as Meta:</p>
112<table>
113<thead>
114<tr><th>Choice</th><th><code class="verbatim">config.toml</code> (<code class="verbatim">option-as-meta</code> in <code class="verbatim">[orgstar]</code>)</th><th>Effect</th></tr>
115</thead>
116<tbody>
117<tr><td>Left Option</td><td><code class="verbatim">"left"</code></td><td>The left Option key is Meta; the right one types characters. The default.</td></tr>
118<tr><td>Right Option</td><td><code class="verbatim">"right"</code></td><td>The right Option key is Meta.</td></tr>
119<tr><td>Both</td><td><code class="verbatim">"both"</code></td><td>Both are Meta; Option no longer types special characters in the editor.</td></tr>
120<tr><td>Neither</td><td><code class="verbatim">"none"</code></td><td>Option always types characters. Plain <code class="verbatim">M-</code> keys such as <code class="verbatim">M-f</code> cannot be typed; chords that also use Control or Command still work.</td></tr>
121</tbody>
122</table>
123<p>Option pressed together with Control or Command always counts as Meta, whatever this setting says, so chords such as <code class="verbatim">C-M-i</code> (<code class="verbatim">⌃⌥I</code>) and the Mac preset's <code class="verbatim">⌃⌥⌘←</code> always work.</p>
124<h2 id="how-keys-reach-commands">How keys reach commands</h2>
125<h3 id="contexts">Contexts</h3>
126<p>One key can run different commands depending on where the caret is. In the Emacs preset <code class="verbatim">M-<right></code> demotes a heading, indents a list item and moves a table column right. Each binding can name a context, and Orgstar tries the bindings for a key from the highest priority down. The first one whose context holds and whose command can run at the caret wins.</p>
127<table>
128<thead>
129<tr><th>Context</th><th>Holds when</th></tr>
130</thead>
131<tbody>
132<tr><td><code class="verbatim">heading</code></td><td>The caret is on a heading line.</td></tr>
133<tr><td><code class="verbatim">item</code></td><td>The caret is inside a list item.</td></tr>
134<tr><td><code class="verbatim">table</code></td><td>The caret is inside a table.</td></tr>
135<tr><td><code class="verbatim">tblfm</code></td><td>The caret is on a <code class="verbatim">#+TBLFM:</code> line.</td></tr>
136<tr><td><code class="verbatim">timestamp</code></td><td>The caret is on a timestamp.</td></tr>
137<tr><td><code class="verbatim">property</code></td><td>The caret is on a property line in a property drawer.</td></tr>
138<tr><td><code class="verbatim">src</code></td><td>The caret is inside a src block.</td></tr>
139<tr><td><code class="verbatim">dblock</code></td><td>The caret is on the <code class="verbatim">#+BEGIN:</code> line of a dynamic block.</td></tr>
140<tr><td><code class="verbatim">fold-line</code></td><td>The caret is on the first or last line of a drawer or block, where <code class="verbatim">TAB</code> folds it.</td></tr>
141<tr><td><code class="verbatim">region</code></td><td>Text is selected.</td></tr>
142<tr><td><code class="verbatim">speed</code></td><td>Speed keys are on, nothing is selected, and the caret is at the very start of a heading line. See <a href="04-outlines.html#speed-keys">Speed keys</a>.</td></tr>
143</tbody>
144</table>
145<p>When no binding for a key applies:</p>
146<ul>
147<li>In the Emacs and Mac presets, a single key goes to the text system and does what it normally does. <code class="verbatim">TAB</code> outside a heading, drawer edge or table types a tab; <code class="verbatim">S-<right></code> on plain text extends the selection.</li>
148<li>A key sequence of two or more keys runs its highest-priority command anyway, so you see that command's message (for example "Not on a heading").</li>
149<li>In the Doom preset the keys go on to the Vim engine (see <a href="#vim-editing-doom-preset">Vim editing</a>).</li>
150</ul>
151<p>In a file that is not an Org file, <code class="verbatim">org.</code> commands never apply, so their keys fall through as above.</p>
152<h3 id="prefix-keys-and-key-hints">Prefix keys and key hints</h3>
153<p>A prefix is a key that starts longer sequences, such as <code class="verbatim">C-c</code>, <code class="verbatim">C-c C-x</code>, <code class="verbatim">C-x n</code> or, in the Doom preset, <code class="verbatim">SPC</code> and <code class="verbatim">SPC m</code>. After a prefix, Orgstar waits for the next key and shows the keys typed so far in the echo area, followed by a dash: <code class="verbatim">C-c C-x-</code>.</p>
154<p>If you pause on a prefix for 0.6 seconds, a panel of key hints opens above the echo area. It lists each key that can follow, sorted by key, with the title of the command it runs, or <code class="verbatim">+prefix</code> when it leads to a longer sequence. This is Orgstar's version of <code class="verbatim">which-key</code>. The hints follow the current keymap, including your <code class="verbatim">keymap.toml</code>, and in the Doom preset the current evil state. When a key has several contexts (<code class="verbatim">C-c C-c</code> is the common case), the hint shows the command that would run at the caret; where none of them applies, it shows the highest-priority one.</p>
155<p><code class="verbatim">C-g</code> during a prefix cancels it; in the Emacs and Mac presets the echo area shows <code class="verbatim">Quit</code>. A sequence that nothing binds shows, for example, <code class="verbatim">C-c z is undefined</code> and does nothing. In the Doom preset this holds for sequences that start with <code class="verbatim">SPC</code> or with a Control or Meta key; see <a href="#how-keys-are-handled">How keys are handled</a> for the others.</p>
156<p>A key bound by itself cannot also be a prefix. When a keymap binds both <code class="verbatim">C-c</code> and <code class="verbatim">C-c C-t</code>, <code class="verbatim">C-c</code> always waits for the next key, so the binding for <code class="verbatim">C-c</code> alone never runs.</p>
157<h2 id="the-echo-area">The echo area</h2>
158<p>The echo area is the line at the bottom of the window, below the modeline. It shows, in order of priority:</p>
159<ul>
160<li>A question a command is asking, with a text field: a refile target, a date, a property value, a sparse-tree match, a Vim search or ex command. <code class="verbatim">Return</code> answers, <code class="verbatim">Esc</code> cancels. When the question has choices, they are listed above the field and filtered as you type with fuzzy matching; <code class="verbatim">Tab</code> completes the best match. Date questions show a calendar, and <code class="verbatim">S-<left></code>, <code class="verbatim">S-<right></code>, <code class="verbatim">S-<up></code> and <code class="verbatim">S-<down></code> move the date by a day or a week, as in <code class="verbatim">org-read-date</code>.</li>
161<li>Fast selection for TODO keywords and tags when the file defines keys for them (see <a href="05-todos-and-tags.html">TODOs and tags</a>).</li>
162<li>The pending prefix, such as <code class="verbatim">C-c C-x-</code>.</li>
163<li>The last message from a command or from the keymap, for four seconds.</li>
164</ul>
165<p>In the Doom preset the modeline shows the evil state as a tag: <code class="verbatim">NORMAL</code>, <code class="verbatim">INSERT</code>, <code class="verbatim">VISUAL</code>, <code class="verbatim">V-LINE</code> or <code class="verbatim">V-BLOCK</code>. See <a href="02-the-editor.html">The editor</a> for the rest of the modeline.</p>
166<h2 id="the-command-palette">The command palette</h2>
167<p>The palette lists every command by title with its keys in the current keymap. Open it with:</p>
168<ul>
169<li><code class="verbatim">⇧⌘P</code> or File ▸ Command Palette… in every preset,</li>
170<li><code class="verbatim">M-x</code> in the Emacs and Doom presets (<code class="verbatim">execute-extended-command</code>),</li>
171<li><code class="verbatim">SPC :</code> in Doom normal state.</li>
172</ul>
173<p>Type part of a title; matching is fuzzy and the best matches come first. <code class="verbatim">Return</code> runs the top match, a click runs any row, and <code class="verbatim">Esc</code> closes the palette. Each row shows up to two key sequences; in the Doom preset these are normal-state keys first, then insert-state keys.</p>
174<p>The palette leaves out text-system movement and editing commands (Forward Character, Kill Line, Set Mark and the like), which only make sense from keys. Every other command is in it, including the ones no preset binds, such as Show or Hide Backlinks, Import Table from File…, Recovery Versions… and Delete Property…. Commands that cannot run at the caret show a message instead.</p>
175<p>The Org menu in the menu bar lists every <code class="verbatim">org.</code> command with its keys in the current keymap, and is a way to find a key without the palette. Its Clock submenu lists the clock commands the same way, followed by the recently clocked entries.</p>
176<h2 id="menu-shortcuts">Menu shortcuts</h2>
177<p>These come from the menu bar and work in every preset. In the Doom preset, keys with <code class="verbatim">⌘</code> always go to the menus.</p>
178<table>
179<thead>
180<tr><th>Menu</th><th>Item</th><th>Key</th></tr>
181</thead>
182<tbody>
183<tr><td>Orgstar</td><td>Settings…</td><td><code class="verbatim">⌘,</code></td></tr>
184<tr><td>Orgstar</td><td>Edit Config File</td><td><code class="verbatim">⌥⌘,</code></td></tr>
185<tr><td>File</td><td>Add Folder…</td><td><code class="verbatim">⇧⌘O</code></td></tr>
186<tr><td>File</td><td>Quick Open…</td><td><code class="verbatim">⌘P</code></td></tr>
187<tr><td>File</td><td>Command Palette…</td><td><code class="verbatim">⇧⌘P</code></td></tr>
188<tr><td>File</td><td>Capture…</td><td><code class="verbatim">⇧⌘N</code></td></tr>
189<tr><td>File</td><td>Close Buffer (closes other windows themselves)</td><td><code class="verbatim">⌘W</code></td></tr>
190<tr><td>File</td><td>Close Window</td><td><code class="verbatim">⇧⌘W</code></td></tr>
191<tr><td>File</td><td>Save</td><td><code class="verbatim">⌘S</code></td></tr>
192<tr><td>File</td><td>Save All</td><td><code class="verbatim">⌥⌘S</code></td></tr>
193<tr><td>Edit ▸ Find</td><td>Find…</td><td><code class="verbatim">⌘F</code></td></tr>
194<tr><td>Edit ▸ Find</td><td>Find and Replace…</td><td><code class="verbatim">⌥⌘F</code></td></tr>
195<tr><td>Edit ▸ Find</td><td>Find Next</td><td><code class="verbatim">⌘G</code></td></tr>
196<tr><td>Edit ▸ Find</td><td>Find Previous</td><td><code class="verbatim">⇧⌘G</code></td></tr>
197<tr><td>Edit ▸ Find</td><td>Use Selection for Find</td><td><code class="verbatim">⌘E</code></td></tr>
198<tr><td>Edit</td><td>Cancel Running Task</td><td><code class="verbatim">⌘.</code></td></tr>
199<tr><td>Edit</td><td>Search Notes</td><td><code class="verbatim">⇧⌘F</code></td></tr>
200<tr><td>View</td><td>Show Markup</td><td><code class="verbatim">⇧⌘M</code></td></tr>
201<tr><td>View</td><td>Show Line Numbers</td><td><code class="verbatim">⇧⌘L</code></td></tr>
202<tr><td>View</td><td>Show or Hide Outline</td><td><code class="verbatim">⌥⌘O</code></td></tr>
203<tr><td>View</td><td>Show or Hide Columns and Clock</td><td><code class="verbatim">⌥⌘I</code></td></tr>
204<tr><td>Window</td><td>Agenda</td><td><code class="verbatim">⇧⌘A</code></td></tr>
205<tr><td>Window</td><td>Board</td><td><code class="verbatim">⇧⌘B</code></td></tr>
206<tr><td>Window</td><td>Next Buffer</td><td><code class="verbatim">⇧⌘]</code></td></tr>
207<tr><td>Window</td><td>Previous Buffer</td><td><code class="verbatim">⇧⌘[</code></td></tr>
208</tbody>
209</table>
210<p>View ▸ Show or Hide Backlinks and Show Tab Bar, Window ▸ Switch to Buffer…, and the items of File ▸ Export have no shortcut.</p>
211<p>With Settings ▸ Capture ▸ "⌃⌥Space opens Capture from any app" on (the default), <code class="verbatim">⌃⌥Space</code> opens the Capture window from any application (see <a href="08-capture.html">Capture</a>).</p>
212<h2 id="speed-keys">Speed keys</h2>
213<p>With <code class="verbatim">org-use-speed-commands</code> set to <code class="verbatim">true</code> in <code class="verbatim">config.toml</code>, single letters typed at the very start of a heading line, before the stars, run commands instead of inserting text (<code class="verbatim">org-speed-commands</code>). Anywhere else the letters type as usual. The setting is off by default and has no checkbox in Settings.</p>
214<p>Speed keys work in the Emacs and Mac presets, and in the Doom preset in insert state. The full list is in the <a href="#speed-keys-reference">speed keys reference</a>.</p>
215<h2 id="customizing-keys-keymap-toml">Customizing keys: keymap.toml</h2>
216<p>Your own bindings go in <code class="verbatim">keymap.toml</code> in the configuration folder: <code class="verbatim">$XDG_CONFIG_HOME/orgstar/keymap.toml</code> when <code class="verbatim">XDG_CONFIG_HOME</code> is set, otherwise <code class="verbatim">~/.config/orgstar/keymap.toml</code>. Settings ▸ General shows the path under the Keys picker. The file does not exist until you create it. If you used an earlier version that kept it in <code class="verbatim">~/Library/Application Support/Orgstar/</code>, that copy is read, and reloaded when you save it, until one exists in the configuration folder.</p>
217<p>The bindings in the file are layered on top of the chosen preset. They apply to whichever preset is chosen, so a file written for the Emacs preset does nothing useful under Doom unless its bindings name a <code class="verbatim">mode</code>.</p>
218<h3 id="format">Format</h3>
219<p>The file is a list of <code class="verbatim">[[bind]]</code> tables, one per binding:</p>
220<pre><code class="language-toml highlight"><span class="source toml"><span class="comment line number-sign toml"><span class="punctuation definition comment toml">#</span> C-c t cycles the TODO keyword.
221</span><span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
222<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-c t<span class="punctuation definition string end toml">"</span></span>
223<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>org.todo.cycle<span class="punctuation definition string end toml">"</span></span></span></code></pre>
224<table>
225<thead>
226<tr><th>Field</th><th>Required</th><th>Meaning</th></tr>
227</thead>
228<tbody>
229<tr><td><code class="verbatim">keys</code></td><td>yes</td><td>The key sequence, in Emacs notation, chords separated by spaces.</td></tr>
230<tr><td><code class="verbatim">command</code></td><td>yes</td><td>A command id, or <code class="verbatim">"none"</code> to unbind.</td></tr>
231<tr><td><code class="verbatim">when</code></td><td>no</td><td>A context from the table in <a href="#contexts">Contexts</a>. Without it the binding holds everywhere.</td></tr>
232<tr><td><code class="verbatim">mode</code></td><td>no</td><td>An evil state for the Doom preset: <code class="verbatim">"normal"</code>, <code class="verbatim">"insert"</code> or <code class="verbatim">"visual"</code>.</td></tr>
233</tbody>
234</table>
235<p>The <a href="#key-reference">key reference</a> gives each command's id after its title. Commands no preset binds are listed under <a href="#unbound-commands">Unbound commands</a>. A binding whose command id Orgstar does not know is skipped and reported when the file loads (see <a href="#reloading-and-errors">Reloading and errors</a>).</p>
236<p>Orgstar reads a subset of TOML: <code class="verbatim">[[bind]]</code> headers, <code class="verbatim">key = value</code> lines, basic <code class="verbatim">"..."</code> and literal <code class="verbatim">'...'</code> strings, <code class="verbatim">true</code> and <code class="verbatim">false</code>, integers, and <code class="verbatim">#</code> comments. Arrays, inline tables and multi-line strings are not supported.</p>
237<h3 id="key-notation">Key notation</h3>
238<table>
239<thead>
240<tr><th>Notation</th><th>Key</th></tr>
241</thead>
242<tbody>
243<tr><td><code class="verbatim">C-</code></td><td>Control (<code class="verbatim">⌃</code>)</td></tr>
244<tr><td><code class="verbatim">M-</code></td><td>Meta: Option (<code class="verbatim">⌥</code>), as set in <a href="#option-as-meta">Option as Meta</a></td></tr>
245<tr><td><code class="verbatim">S-</code></td><td>Shift (<code class="verbatim">⇧</code>)</td></tr>
246<tr><td><code class="verbatim">s-</code></td><td>Command (<code class="verbatim">⌘</code>)</td></tr>
247<tr><td><code class="verbatim">a</code>, <code class="verbatim">%</code>, <code class="verbatim">/</code></td><td>A single character</td></tr>
248<tr><td><code class="verbatim">TAB</code>, <code class="verbatim">RET</code>, <code class="verbatim">SPC</code>, <code class="verbatim">ESC</code>, <code class="verbatim">DEL</code></td><td>Tab, Return, Space, Escape, Delete (backspace)</td></tr>
249<tr><td><code class="verbatim"><left></code>, <code class="verbatim"><right></code>, <code class="verbatim"><up></code>, <code class="verbatim"><down></code></td><td>Arrow keys</td></tr>
250<tr><td><code class="verbatim"><home></code>, <code class="verbatim"><end></code>, <code class="verbatim"><prior></code>, <code class="verbatim"><next></code></td><td>Home, End, Page Up, Page Down</td></tr>
251<tr><td><code class="verbatim"><delete></code></td><td>Forward delete (<code class="verbatim">⌦</code>)</td></tr>
252<tr><td><code class="verbatim"><f1></code> to <code class="verbatim"><f12></code></td><td>Function keys</td></tr>
253</tbody>
254</table>
255<p>Modifiers combine: <code class="verbatim">C-M-s-<left></code> is <code class="verbatim">⌃⌥⌘←</code>. <code class="verbatim"><tab></code>, <code class="verbatim"><return></code>, <code class="verbatim"><escape></code> and <code class="verbatim"><backspace></code> are accepted as other names for <code class="verbatim">TAB</code>, <code class="verbatim">RET</code>, <code class="verbatim">ESC</code> and <code class="verbatim">DEL</code>, and <code class="verbatim"><backtab></code> for <code class="verbatim">S-TAB</code>.</p>
256<p>Shift with a letter is written as the capital letter: <code class="verbatim">S-a</code> and <code class="verbatim">A</code> are the same key, and so are <code class="verbatim">C-S-h</code> and <code class="verbatim">C-H</code>. With other keys Shift stays a modifier: <code class="verbatim">S-TAB</code>, <code class="verbatim">S-<up></code>, <code class="verbatim">M-S-RET</code>.</p>
257<p>A backslash in a basic string must be doubled. These two lines are the same key, <code class="verbatim">⌃⌘\</code>:</p>
258<pre><code class="language-toml highlight"><span class="source toml"><span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-s-<span class="constant character escape toml">\\</span><span class="punctuation definition string end toml">"</span></span>
259<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted single toml"><span class="punctuation definition string begin toml">'</span>C-s-\<span class="punctuation definition string end toml">'</span></span></span></code></pre>
260<h3 id="priority">Priority</h3>
261<p>Bindings are read in order: the preset first, then your file from top to bottom. When several bindings have the same keys, later ones are tried first. A binding in your file without <code class="verbatim">when</code> therefore takes its keys everywhere, hiding every context-specific preset binding for them. A binding with <code class="verbatim">when</code> is tried first only in its context; elsewhere the preset's bindings still apply.</p>
262<pre><code class="language-toml highlight"><span class="source toml"><span class="comment line number-sign toml"><span class="punctuation definition comment toml">#</span> M-RET in a table inserts a row; on headings and items it does what the preset says.
263</span><span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
264<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>M-RET<span class="punctuation definition string end toml">"</span></span>
265<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>org.table.insert-row<span class="punctuation definition string end toml">"</span></span>
266<span class="variable other key toml">when</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>table<span class="punctuation definition string end toml">"</span></span></span></code></pre>
267<h3 id="unbinding">Unbinding</h3>
268<p>Set <code class="verbatim">command</code> to <code class="verbatim">"none"</code> to remove a key. A <code class="verbatim">"none"</code> binding without <code class="verbatim">when</code> hides every earlier binding of exactly those keys, so the key goes to the text system (or, in the Doom preset, to Vim):</p>
269<pre><code class="language-toml highlight"><span class="source toml"><span class="comment line number-sign toml"><span class="punctuation definition comment toml">#</span> Leave C-t to macOS's transpose and C-k to its kill.
270</span><span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
271<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-t<span class="punctuation definition string end toml">"</span></span>
272<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>none<span class="punctuation definition string end toml">"</span></span>
273<span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
274<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-k<span class="punctuation definition string end toml">"</span></span>
275<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>none<span class="punctuation definition string end toml">"</span></span></span></code></pre>
276<p>Limitations:</p>
277<ul>
278<li>A <code class="verbatim">"none"</code> binding with <code class="verbatim">when</code> has no effect. You cannot unbind a key in one context only; bind it to another command in that context instead.</li>
279<li>Unbinding a prefix does not remove the longer sequences under it. Unbinding <code class="verbatim">C-c C-x</code> leaves <code class="verbatim">C-c C-x C-i</code> and the rest working. Unbind each sequence you want gone.</li>
280</ul>
281<h3 id="doom-states">Doom states</h3>
282<p>In the Doom preset every binding belongs to a state. A binding without <code class="verbatim">mode</code> never runs in the Doom preset, and a binding with <code class="verbatim">mode</code> never runs in the Emacs or Mac preset. <code class="verbatim">mode = "visual"</code> covers visual, visual-line and visual-block. To bind a key in more than one state, write one table per state:</p>
283<pre><code class="language-toml highlight"><span class="source toml"><span class="comment line number-sign toml"><span class="punctuation definition comment toml">#</span> SPC n a opens the agenda.
284</span><span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
285<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>SPC n a<span class="punctuation definition string end toml">"</span></span>
286<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>app.agenda<span class="punctuation definition string end toml">"</span></span>
287<span class="variable other key toml">mode</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>normal<span class="punctuation definition string end toml">"</span></span>
288
289<span class="comment line number-sign toml"><span class="punctuation definition comment toml">#</span> C-c n inserts a heading in normal and insert state.
290</span><span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
291<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-c n<span class="punctuation definition string end toml">"</span></span>
292<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>org.heading.insert<span class="punctuation definition string end toml">"</span></span>
293<span class="variable other key toml">mode</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>normal<span class="punctuation definition string end toml">"</span></span>
294<span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
295<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-c n<span class="punctuation definition string end toml">"</span></span>
296<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>org.heading.insert<span class="punctuation definition string end toml">"</span></span>
297<span class="variable other key toml">mode</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>insert<span class="punctuation definition string end toml">"</span></span></span></code></pre>
298<p>A <code class="verbatim">mode</code> other than <code class="verbatim">normal</code>, <code class="verbatim">insert</code> or <code class="verbatim">visual</code> (including <code class="verbatim">visual-line</code>) is reported when the file loads, and the binding is skipped.</p>
299<h3 id="more-examples">More examples</h3>
300<pre><code class="language-toml highlight"><span class="source toml"><span class="comment line number-sign toml"><span class="punctuation definition comment toml">#</span> Mac preset: ⌃⌘U goes up to the parent heading, ⌃⌘R recalculates the table row, ⌃⌘; toggles COMMENT.
301</span><span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
302<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-s-u<span class="punctuation definition string end toml">"</span></span>
303<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>org.heading.up<span class="punctuation definition string end toml">"</span></span>
304<span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
305<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-s-r<span class="punctuation definition string end toml">"</span></span>
306<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>org.table.recalc<span class="punctuation definition string end toml">"</span></span>
307<span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
308<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-s-;<span class="punctuation definition string end toml">"</span></span>
309<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>org.heading.toggle-comment<span class="punctuation definition string end toml">"</span></span>
310
311<span class="comment line number-sign toml"><span class="punctuation definition comment toml">#</span> Emacs preset: C-c b opens the board, C-c r reloads this file.
312</span><span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
313<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-c b<span class="punctuation definition string end toml">"</span></span>
314<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>app.board<span class="punctuation definition string end toml">"</span></span>
315<span class="punctuation definition table array toml">[[</span><span class="entity name section toml">bind</span><span class="punctuation definition table array toml">]]</span>
316<span class="variable other key toml">keys</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>C-c r<span class="punctuation definition string end toml">"</span></span>
317<span class="variable other key toml">command</span> <span class="keyword operator assignment toml">=</span> <span class="string quoted double toml"><span class="punctuation definition string begin toml">"</span>app.reload-keymap<span class="punctuation definition string end toml">"</span></span>
318</span></code></pre>
319<h3 id="reloading-and-errors">Reloading and errors</h3>
320<p>Orgstar watches the configuration folder and reloads <code class="verbatim">keymap.toml</code> when you save it. It also reloads when you change the preset, and when you run Reload Keymap (<code class="verbatim">app.reload-keymap</code>, in the palette, and <code class="verbatim">SPC h r r</code> in Doom normal state), which shows <code class="verbatim">Keymap reloaded</code>.</p>
321<p>Problems are reported in the echo area with the line number, for example <code class="verbatim">keymap.toml: line 12: unknown context tabel (and 1 more)</code>. A binding with bad or missing <code class="verbatim">keys</code>, a missing <code class="verbatim">command</code>, a command id Orgstar does not know, an unknown <code class="verbatim">when</code> or <code class="verbatim">mode</code>, or a table other than <code class="verbatim">[[bind]]</code> is skipped; the rest of the file still applies. A file that is not valid TOML is ignored as a whole and the error is shown; the preset alone applies until you fix it.</p>
322<h3 id="importing-from-emacs">Importing from Emacs</h3>
323<p>Settings ▸ General ▸ Import from Emacs… reads your Emacs or Doom configuration and offers, among other things, the key bindings it finds: <code class="verbatim">global-set-key</code>, <code class="verbatim">keymap-global-set</code>, <code class="verbatim">define-key</code>, <code class="verbatim">keymap-set</code>, <code class="verbatim">evil-define-key</code> and Doom's <code class="verbatim">map!</code> with <code class="verbatim">:leader</code>, <code class="verbatim">:localleader</code>, state keywords and <code class="verbatim">:prefix</code>. Bindings to commands Orgstar has are appended to <code class="verbatim">keymap.toml</code> under a <code class="verbatim"># Imported from Emacs.</code> comment, leaving out bindings the file already has. Keys written as vectors, such as <code class="verbatim">[f5]</code>, are skipped. See <a href="15-alongside-emacs.html">Alongside Emacs</a>.</p>
324<h2 id="vim-editing-doom-preset">Vim editing (Doom preset)</h2>
325<p>The Doom preset edits modally, as Doom Emacs does with <code class="verbatim">evil</code>, <code class="verbatim">evil-org</code>, <code class="verbatim">evil-surround</code>, <code class="verbatim">evil-snipe</code> and <code class="verbatim">evil-nerd-commenter</code>. Orgstar implements these itself; none of them are Emacs packages running inside it. The caret is a block in normal and visual states and a bar in insert state, and the modeline shows the state.</p>
326<h3 id="how-keys-are-handled">How keys are handled</h3>
327<p>Each key goes first to the keymap for the current state, then to the Vim engine:</p>
328<ol>
329<li>Keys with <code class="verbatim">⌘</code> go to the menus.</li>
330<li>If a Vim command is half typed (after <code class="verbatim">d</code>, <code class="verbatim">"a</code>, <code class="verbatim">3</code> and so on), the key goes to Vim.</li>
331<li>Otherwise the keymap gets the key. A prefix such as <code class="verbatim">SPC</code>, <code class="verbatim">g</code>, <code class="verbatim">z</code>, <code class="verbatim">[</code>, <code class="verbatim">]</code>, <code class="verbatim">C-c</code> or <code class="verbatim">C-x</code> waits for the next key, with key hints as described above. A complete sequence runs its command if the binding's context holds and the command can run at the caret.</li>
332<li>Anything the keymap does not take goes to Vim, as typed. In insert state, keys Vim does not handle are typed as text.</li>
333</ol>
334<p>Two consequences:</p>
335<ul>
336<li>Keymap commands do not take counts or registers. Once you type a count or a register, the following keys go straight to Vim.</li>
337<li>A sequence the keymap does not complete after <code class="verbatim">SPC</code>, <code class="verbatim">C-c</code>, <code class="verbatim">C-x</code> or another Control or Meta prefix is undefined: the echo area shows, for example, <code class="verbatim">SPC j is undefined</code>, and nothing runs. After <code class="verbatim">g</code>, <code class="verbatim">z</code>, <code class="verbatim">[</code> or <code class="verbatim">]</code>, which are Vim prefixes too, the keys are replayed into Vim, so <code class="verbatim">gu</code> and <code class="verbatim">gq</code> reach the Vim engine although the keymap binds other <code class="verbatim">g</code> keys.</li>
338</ul>
339<h3 id="states">States</h3>
340<table>
341<thead>
342<tr><th>State</th><th>Enter with</th><th>Leave with</th></tr>
343</thead>
344<tbody>
345<tr><td>Normal</td><td><code class="verbatim">ESC</code>, <code class="verbatim">C-[</code> or <code class="verbatim">C-g</code> from insert state; <code class="verbatim">ESC</code> from visual</td><td>—</td></tr>
346<tr><td>Insert</td><td><code class="verbatim">i</code>, <code class="verbatim">a</code>, <code class="verbatim">I</code>, <code class="verbatim">A</code>, <code class="verbatim">o</code>, <code class="verbatim">O</code>, <code class="verbatim">c</code> commands, <code class="verbatim">cc</code>, <code class="verbatim">C</code>, block <code class="verbatim">I</code>, <code class="verbatim">A</code>, <code class="verbatim">c</code></td><td><code class="verbatim">ESC</code>, <code class="verbatim">C-[</code>, <code class="verbatim">C-g</code></td></tr>
347<tr><td>Visual</td><td><code class="verbatim">v</code></td><td><code class="verbatim">v</code>, <code class="verbatim">ESC</code></td></tr>
348<tr><td>Visual line</td><td><code class="verbatim">V</code></td><td><code class="verbatim">V</code>, <code class="verbatim">ESC</code></td></tr>
349<tr><td>Visual block</td><td><code class="verbatim">C-v</code></td><td><code class="verbatim">C-v</code>, <code class="verbatim">ESC</code></td></tr>
350</tbody>
351</table>
352<p>Leaving insert state moves the caret back one character, as in Vim. A mouse click leaves visual state. In the keymap, <code class="verbatim">"visual"</code> is the state name for all three visual states.</p>
353<p>In insert state, <code class="verbatim">C-w</code> deletes the word before the caret and <code class="verbatim">C-u</code> deletes back to the line's indentation (or to the start of the line when the caret is already there). The rest of insert state is the Emacs preset's Org keys, the Doom insert-state keys in the reference (<code class="verbatim">TAB</code> and <code class="verbatim">S-TAB</code> on headings, items and tables, <code class="verbatim">C-t</code> and <code class="verbatim">C-d</code>, <code class="verbatim">C-S-h/j/k/l</code>, <code class="verbatim">C-SPC</code> for completion) and ordinary typing.</p>
354<h3 id="motions">Motions</h3>
355<p>Motions move the caret in normal state, extend the selection in visual states, and give the range for an operator. A count before a motion repeats it.</p>
356<table>
357<thead>
358<tr><th>Keys</th><th>Moves</th></tr>
359</thead>
360<tbody>
361<tr><td><code class="verbatim">h</code>, <code class="verbatim">l</code>, <code class="verbatim"><left></code>, <code class="verbatim"><right></code>, <code class="verbatim">DEL</code></td><td>Left, right; <code class="verbatim">DEL</code> is <code class="verbatim">h</code>. Stays on the line.</td></tr>
362<tr><td><code class="verbatim">j</code>, <code class="verbatim">k</code>, <code class="verbatim"><down></code>, <code class="verbatim"><up></code></td><td>Down, up, keeping the column.</td></tr>
363<tr><td><code class="verbatim">gj</code>, <code class="verbatim">gk</code></td><td>In Org files, to the next or previous Org element (<code class="verbatim">org-forward-element</code>, <code class="verbatim">org-backward-element</code>, as evil-org binds them); counts are ignored. On a heading, <code class="verbatim">gj</code> goes to the next heading after the subtree and <code class="verbatim">gk</code> to the previous heading at the same level or higher. In other files, down and up by screen lines in wrapped text.</td></tr>
364<tr><td><code class="verbatim">+</code>, <code class="verbatim">-</code>, <code class="verbatim">RET</code></td><td>First non-blank of the next or previous line. In Org files <code class="verbatim">RET</code> runs Act at Point instead.</td></tr>
365<tr><td><code class="verbatim">w</code>, <code class="verbatim">b</code>, <code class="verbatim">e</code>, <code class="verbatim">ge</code></td><td>Next word start, previous word start, word end, previous word end.</td></tr>
366<tr><td><code class="verbatim">W</code>, <code class="verbatim">B</code>, <code class="verbatim">E</code>, <code class="verbatim">gE</code></td><td>The same for blank-separated WORDs.</td></tr>
367<tr><td><code class="verbatim">0</code>, <code class="verbatim"><home></code></td><td>Start of the line.</td></tr>
368<tr><td><code class="verbatim">$</code>, <code class="verbatim"><end></code></td><td>End of the line; with a count, of the line count − 1 lines down.</td></tr>
369<tr><td><code class="verbatim">g_</code></td><td>Last non-blank of the line.</td></tr>
370<tr><td><code class="verbatim">gg</code>, <code class="verbatim">G</code></td><td>First line, last line; with a count, that line. The column is kept (<code class="verbatim">evil-start-of-line</code> nil).</td></tr>
371<tr><td><code class="verbatim">f</code> <em>x</em>, <code class="verbatim">F</code> <em>x</em>, <code class="verbatim">t</code> <em>x</em>, <code class="verbatim">T</code> <em>x</em></td><td>To, or to just before, the next or previous <em>x</em> on the line. These are one-character snipes, as Doom's <code class="verbatim">evil-snipe-override-mode</code> makes them: a lowercase <em>x</em> matches either case, an uppercase one only itself; <code class="verbatim">t</code> and <code class="verbatim">T</code> skip a match right next to the caret; <code class="verbatim">f SPC</code> and <code class="verbatim">t SPC</code> skip a run of blanks after the caret and stop at the last blank before the next word, or just before it. Accented variants of <em>x</em> don't match (<code class="verbatim">evil-snipe-char-fold</code> is not supported).</td></tr>
372<tr><td><code class="verbatim">;</code>, <code class="verbatim">,</code></td><td>Repeats the last snipe (<code class="verbatim">s</code>, <code class="verbatim">S</code>, <code class="verbatim">f</code>, <code class="verbatim">F</code>, <code class="verbatim">t</code> or <code class="verbatim">T</code>), forward or reversed. A repeat searches all the text the window shows, so it can go past the caret's line (<code class="verbatim">evil-snipe-repeat-scope</code>, as Doom sets it). Right after a snipe, its own key repeats it: <code class="verbatim">f</code> goes on in the same direction and <code class="verbatim">F</code> reverses, and the same for <code class="verbatim">t</code> and <code class="verbatim">T</code> and for <code class="verbatim">s</code> and <code class="verbatim">S</code>. A count before that repeating key is not supported.</td></tr>
373<tr><td><code class="verbatim">s</code> <em>xy</em>, <code class="verbatim">S</code> <em>xy</em></td><td>evil-snipe: to the next or previous <em>xy</em> on the line. All-lowercase <em>xy</em> matches case-insensitively. Not available after an operator.</td></tr>
374<tr><td><code class="verbatim">%</code></td><td>The bracket matching the next <code class="verbatim">()</code>, <code class="verbatim">[]</code> or <code class="verbatim">{}</code> on the line.</td></tr>
375<tr><td><code class="verbatim">{</code>, <code class="verbatim">}</code></td><td>Previous, next blank line.</td></tr>
376<tr><td><code class="verbatim">/</code>, <code class="verbatim">?</code></td><td>Asks in the echo area for a regular expression and searches forward or backward, wrapping around the file.</td></tr>
377<tr><td><code class="verbatim">n</code>, <code class="verbatim">N</code></td><td>Repeats the last search in the same or the opposite direction.</td></tr>
378<tr><td><code class="verbatim">*</code>, <code class="verbatim">#</code></td><td>Searches forward or backward for the whole word under the caret.</td></tr>
379<tr><td><code class="verbatim">C-d</code>, <code class="verbatim">C-u</code></td><td>Down, up half the window's height; with a count, that many lines.</td></tr>
380<tr><td><code class="verbatim">H</code>, <code class="verbatim">M</code>, <code class="verbatim">L</code></td><td>First non-blank of the top, middle or bottom line the window shows. With a count, <code class="verbatim">H</code> goes to that line from the top and <code class="verbatim">L</code> from the bottom. Lines are text lines, not wrapped screen lines. Linewise after an operator.</td></tr>
381<tr><td><code class="verbatim">'</code> <em>a</em>, <code class="verbatim">`</code> <em>a</em></td><td>To mark <em>a</em>: its line's first non-blank, or its exact position. See <a href="#marks-and-jumps">Marks and jumps</a>.</td></tr>
382</tbody>
383</table>
384<p>Search patterns are ICU regular expressions as macOS uses them, close to PCRE; Emacs and Vim regexp syntax such as <code class="verbatim">\(...\)</code> or <code class="verbatim">\<</code> does not work. <code class="verbatim">:noh</code> is accepted and does nothing; searches are not highlighted.</p>
385<h3 id="operators">Operators</h3>
386<table>
387<thead>
388<tr><th>Keys</th><th>Does</th></tr>
389</thead>
390<tbody>
391<tr><td><code class="verbatim">d</code> <em>motion</em></td><td>Deletes. <code class="verbatim">dd</code> deletes lines.</td></tr>
392<tr><td><code class="verbatim">c</code> <em>motion</em></td><td>Deletes and enters insert state. <code class="verbatim">cc</code> keeps the line's indentation; <code class="verbatim">cw</code> changes to the end of the word, as <code class="verbatim">ce</code>.</td></tr>
393<tr><td><code class="verbatim">y</code> <em>motion</em></td><td>Yanks (copies). <code class="verbatim">yy</code> yanks lines.</td></tr>
394<tr><td><code class="verbatim">></code> <em>motion</em>, <code class="verbatim"><</code> <em>motion</em></td><td>Indents or outdents lines by 8 spaces (<code class="verbatim">evil-shift-width</code>, which Doom sets to Org's <code class="verbatim">tab-width</code>). <code class="verbatim">>></code> and <code class="verbatim"><<</code> act on lines.</td></tr>
395<tr><td><code class="verbatim">g~</code> <em>motion</em>, <code class="verbatim">gu</code> <em>motion</em>, <code class="verbatim">gU</code> <em>motion</em></td><td>Toggles case, lowercases, uppercases. <code class="verbatim">g~~</code>, <code class="verbatim">guu</code>, <code class="verbatim">gUU</code> act on lines.</td></tr>
396<tr><td><code class="verbatim">gc</code> <em>motion</em></td><td>Comments or uncomments lines with <code class="verbatim">#</code> (<code class="verbatim">evilnc-comment-operator</code>). <code class="verbatim">gcc</code> acts on lines. See <a href="#commenting">Commenting</a>.</td></tr>
397<tr><td><code class="verbatim">gq</code> <em>motion</em>, <code class="verbatim">gw</code> <em>motion</em></td><td>Fills the paragraphs in the motion's lines to the fill column, as Fill Paragraph does; other elements in the lines are left alone. <code class="verbatim">gq</code> leaves the caret on the first non-blank of the last line, <code class="verbatim">gw</code> where it was. Extra spaces between words and at the ends of lines are kept, as Doom fills without squeezing them. <code class="verbatim">gqq</code> and <code class="verbatim">gww</code> act on lines.</td></tr>
398</tbody>
399</table>
400<p><code class="verbatim">M-q</code> runs Fill Paragraph in normal, insert and visual state. In visual and visual-line state it fills every paragraph the selection touches and leaves the caret where it was; if the text changed, the editor returns to normal state, otherwise the selection stays.</p>
401<p>Counts multiply: <code class="verbatim">2d3w</code> deletes six words. Doubling an operator with a count acts on that many lines: <code class="verbatim">3dd</code>.</p>
402<p>Single-key changes:</p>
403<table>
404<thead>
405<tr><th>Keys</th><th>Does</th></tr>
406</thead>
407<tbody>
408<tr><td><code class="verbatim">x</code>, <code class="verbatim"><delete></code></td><td>Deletes the character under the caret (count: that many, within the line).</td></tr>
409<tr><td><code class="verbatim">X</code></td><td>Deletes the character before the caret.</td></tr>
410<tr><td><code class="verbatim">D</code>, <code class="verbatim">C</code></td><td>Deletes, or changes, to the end of the line.</td></tr>
411<tr><td><code class="verbatim">Y</code></td><td>Yanks to the end of the line (<code class="verbatim">evil-want-Y-yank-to-eol</code>, as Doom sets it).</td></tr>
412<tr><td><code class="verbatim">p</code>, <code class="verbatim">P</code></td><td>Pastes after or before the caret; whole lines go below or above the current line. A count pastes that many times.</td></tr>
413<tr><td><code class="verbatim">J</code></td><td>Joins the next line (count: that many lines) with one space.</td></tr>
414<tr><td><code class="verbatim">~</code></td><td>Toggles the case of the character under the caret and moves right.</td></tr>
415<tr><td><code class="verbatim">r</code> <em>x</em></td><td>Replaces the character under the caret (count: that many) with <em>x</em>; <code class="verbatim">r RET</code> splits the line.</td></tr>
416<tr><td><code class="verbatim">u</code>, <code class="verbatim">C-r</code></td><td>Undo, redo, with counts.</td></tr>
417<tr><td><code class="verbatim">.</code></td><td>Repeats the last change.</td></tr>
418<tr><td><code class="verbatim">ZZ</code></td><td>Saves the file and closes the window, as <code class="verbatim">:wq</code>.</td></tr>
419<tr><td><code class="verbatim">ZQ</code></td><td>Closes the window, as <code class="verbatim">:q!</code>.</td></tr>
420</tbody>
421</table>
422<p><code class="verbatim">o</code> and <code class="verbatim">O</code> open a line below or above with Org's indentation: under a list item, aligned with the item's text; under a heading, none; otherwise the line's own indentation.</p>
423<h3 id="text-objects">Text objects</h3>
424<p>After an operator, or in visual state to select, <code class="verbatim">i</code> takes the inner object and <code class="verbatim">a</code> the object with its surrounding space or delimiters.</p>
425<table>
426<thead>
427<tr><th>Keys</th><th>Object</th></tr>
428</thead>
429<tbody>
430<tr><td><code class="verbatim">iw</code>, <code class="verbatim">aw</code>, <code class="verbatim">iW</code>, <code class="verbatim">aW</code></td><td>Word, WORD.</td></tr>
431<tr><td><code class="verbatim">i"</code>, <code class="verbatim">a"</code>, <code class="verbatim">i'</code>, <code class="verbatim">a'</code>, <code class="verbatim">i`</code>, <code class="verbatim">a`</code></td><td>Quoted text on the line.</td></tr>
432<tr><td><code class="verbatim">i(</code>, <code class="verbatim">a(</code>, <code class="verbatim">i)</code>, <code class="verbatim">a)</code>, <code class="verbatim">ib</code>, <code class="verbatim">ab</code></td><td>Parentheses.</td></tr>
433<tr><td><code class="verbatim">i[</code>, <code class="verbatim">a[</code>, <code class="verbatim">i]</code>, <code class="verbatim">a]</code></td><td>Square brackets.</td></tr>
434<tr><td><code class="verbatim">i{</code>, <code class="verbatim">a{</code>, <code class="verbatim">i}</code>, <code class="verbatim">a}</code>, <code class="verbatim">iB</code>, <code class="verbatim">aB</code></td><td>Braces.</td></tr>
435<tr><td><code class="verbatim">i<</code>, <code class="verbatim">a<</code>, <code class="verbatim">i></code>, <code class="verbatim">a></code></td><td>Angle brackets.</td></tr>
436<tr><td><code class="verbatim">ip</code>, <code class="verbatim">ap</code></td><td>Paragraph: lines up to a blank line.</td></tr>
437<tr><td><code class="verbatim">ie</code>, <code class="verbatim">ae</code></td><td>Org object at the caret: emphasis, a link, a timestamp, a footnote reference, an entity, a macro and the like (<code class="verbatim">evil-org-inner-object</code>, <code class="verbatim">evil-org-an-object</code>). <code class="verbatim">ie</code> on emphasis takes the text inside the markers, on a link its description. With no object at the caret, the element.</td></tr>
438<tr><td><code class="verbatim">iE</code>, <code class="verbatim">aE</code></td><td>Org element: a paragraph, a list, a table, a block, a drawer (<code class="verbatim">evil-org-inner-element</code>, <code class="verbatim">evil-org-an-element</code>).</td></tr>
439<tr><td><code class="verbatim">ir</code>, <code class="verbatim">ar</code></td><td>Org greater element: the list, table, drawer, block or section that contains the element (<code class="verbatim">evil-org-inner-greater-element</code>, <code class="verbatim">evil-org-a-greater-element</code>).</td></tr>
440<tr><td><code class="verbatim">iR</code>, <code class="verbatim">aR</code></td><td>Org subtree: <code class="verbatim">aR</code> is the heading and its subtree, <code class="verbatim">iR</code> its contents without the heading line (<code class="verbatim">evil-org-inner-subtree</code>, <code class="verbatim">evil-org-a-subtree</code>).</td></tr>
441</tbody>
442</table>
443<p>Tag objects (<code class="verbatim">it</code>, <code class="verbatim">at</code>) and sentence objects (<code class="verbatim">is</code>, <code class="verbatim">as</code>) are not available.</p>
444<h3 id="counts-and-registers">Counts and registers</h3>
445<p>A count is digits before a command; <code class="verbatim">0</code> only counts after another digit. A register is <code class="verbatim">"</code> and a name before the count and command: <code class="verbatim">"ayy</code>, <code class="verbatim">"a3dd</code>, <code class="verbatim">"ap</code>.</p>
446<table>
447<thead>
448<tr><th>Register</th><th>Holds</th></tr>
449</thead>
450<tbody>
451<tr><td><code class="verbatim">"a</code> to <code class="verbatim">"z</code></td><td>Named registers. Yanking or deleting into <code class="verbatim">A</code> to <code class="verbatim">Z</code> appends to the lowercase one. Writing to a named register leaves the clipboard alone.</td></tr>
452<tr><td><code class="verbatim">"0</code></td><td>The last yank.</td></tr>
453<tr><td><code class="verbatim">""</code>, <code class="verbatim">"+</code>, <code class="verbatim">"*</code></td><td>The system clipboard. This is the unnamed register: every yank, delete and change without a register goes to the clipboard, and <code class="verbatim">p</code> without a register pastes from it.</td></tr>
454<tr><td><code class="verbatim">"_</code></td><td>The black hole: deletes without saving the text.</td></tr>
455</tbody>
456</table>
457<p>Pasting from the clipboard is linewise when its text is what the last linewise yank or delete put there; text copied in another app pastes as characters. Numbered registers <code class="verbatim">"1</code> to <code class="verbatim">"9</code>, and the read-only registers such as <code class="verbatim">"%</code>, are not available.</p>
458<p>Registers and macros are shared by every buffer, as in evil: a yank into <code class="verbatim">"a</code> in one file pastes with <code class="verbatim">"ap</code> in another. Lowercase marks and the jump list belong to the buffer and are gone when it closes. Nothing is kept when Orgstar quits.</p>
459<h3 id="repeat">Repeat</h3>
460<p><code class="verbatim">.</code> repeats the last change made in normal state, including text typed in insert state that the change began: <code class="verbatim">ciwfoo ESC</code> then <code class="verbatim">.</code> changes the next word to <code class="verbatim">foo</code>. A count before <code class="verbatim">.</code> replaces the original count.</p>
461<p>Changes made from visual or visual-block state, visual <code class="verbatim">S</code> surrounds, and keymap commands (such as <code class="verbatim">M-l</code> or <code class="verbatim">SPC m t</code>) are not repeated by <code class="verbatim">.</code>.</p>
462<h3 id="macros">Macros</h3>
463<table>
464<thead>
465<tr><th>Keys</th><th>Does</th></tr>
466</thead>
467<tbody>
468<tr><td><code class="verbatim">q</code> <em>a</em></td><td>Starts recording keys into macro register <em>a</em> (a letter or digit). The echo area shows <code class="verbatim">Defining keyboard macro…</code>.</td></tr>
469<tr><td><code class="verbatim">q</code></td><td>Stops recording: <code class="verbatim">Keyboard macro defined</code>.</td></tr>
470<tr><td><code class="verbatim">@</code> <em>a</em></td><td>Plays macro <em>a</em>. A count plays it that many times.</td></tr>
471<tr><td><code class="verbatim">@@</code></td><td>Plays the last macro played.</td></tr>
472</tbody>
473</table>
474<p>A macro replays the keys you typed, including keymap commands, leader keys and insert-state typing. Keys with <code class="verbatim">⌘</code> are not recorded. Macros are kept apart from text registers: <code class="verbatim">"ap</code> does not paste a macro, and <code class="verbatim">"ay</code> does not change one. Macros can call macros up to 20 deep.</p>
475<h3 id="marks-and-jumps">Marks and jumps</h3>
476<p><code class="verbatim">m</code> <em>a</em> sets mark <em>a</em> (any letter) at the caret. Marks move with the text as you edit. <code class="verbatim">'</code> <em>a</em> goes to the first non-blank of the mark's line, <code class="verbatim">`</code> <em>a</em> to its exact position. <code class="verbatim">''</code> and <code class="verbatim">``</code> go back to where the last jump started.</p>
477<p>Jumps are <code class="verbatim">G</code>, <code class="verbatim">gg</code>, <code class="verbatim">%</code>, <code class="verbatim">{</code>, <code class="verbatim">}</code>, <code class="verbatim">n</code>, <code class="verbatim">N</code>, <code class="verbatim">*</code>, <code class="verbatim">#</code>, <code class="verbatim">'</code>, <code class="verbatim">`</code>, <code class="verbatim">H</code>, <code class="verbatim">M</code>, <code class="verbatim">L</code>, the snipes <code class="verbatim">s</code>, <code class="verbatim">S</code>, <code class="verbatim">f</code>, <code class="verbatim">F</code>, <code class="verbatim">t</code> and <code class="verbatim">T</code>, and searches with <code class="verbatim">/</code> and <code class="verbatim">?</code>. Each jump adds its starting point to the jump list, which keeps the last 100. <code class="verbatim">C-o</code> goes back through the list and <code class="verbatim">C-i</code> forward again. A new jump after <code class="verbatim">C-o</code> drops the places you went back past.</p>
478<p>Lowercase marks belong to the buffer, and so do <code class="verbatim">C-o</code> and <code class="verbatim">C-i</code>. Uppercase marks (<code class="verbatim">mA</code> to <code class="verbatim">mZ</code>) are file marks, shared by every buffer: <code class="verbatim">'A</code> or <code class="verbatim">`A</code> in another buffer shows the buffer the mark was set in, at the mark. A file mark goes away when its buffer closes.</p>
479<h3 id="visual-states">Visual states</h3>
480<p><code class="verbatim">v</code> selects characters, <code class="verbatim">V</code> whole lines, <code class="verbatim">C-v</code> a rectangular block. Motions and text objects extend the selection; <code class="verbatim">o</code> moves the caret to the other end. <code class="verbatim">gv</code> in normal state selects the last visual selection again.</p>
481<p>In visual and visual-line state:</p>
482<table>
483<thead>
484<tr><th>Keys</th><th>Does</th></tr>
485</thead>
486<tbody>
487<tr><td><code class="verbatim">d</code>, <code class="verbatim">x</code></td><td>Deletes the selection.</td></tr>
488<tr><td><code class="verbatim">c</code></td><td>Deletes it and enters insert state.</td></tr>
489<tr><td><code class="verbatim">y</code></td><td>Yanks it.</td></tr>
490<tr><td><code class="verbatim">></code>, <code class="verbatim"><</code></td><td>Indents or outdents its lines.</td></tr>
491<tr><td><code class="verbatim">~</code>, <code class="verbatim">u</code>, <code class="verbatim">U</code>, <code class="verbatim">g~</code>, <code class="verbatim">gu</code>, <code class="verbatim">gU</code></td><td>Toggles case, lowercases, uppercases.</td></tr>
492<tr><td><code class="verbatim">gc</code></td><td>Comments or uncomments its lines.</td></tr>
493<tr><td><code class="verbatim">gq</code>, <code class="verbatim">gw</code></td><td>Fills the paragraphs in its lines.</td></tr>
494<tr><td><code class="verbatim">J</code></td><td>Joins its lines.</td></tr>
495<tr><td><code class="verbatim">p</code>, <code class="verbatim">P</code></td><td>Replaces it with the clipboard or a register; the replaced text goes to the clipboard.</td></tr>
496<tr><td><code class="verbatim">S</code> <em>x</em></td><td>Surrounds it with <em>x</em> (see below). Linewise selections get the delimiters on lines of their own.</td></tr>
497<tr><td><code class="verbatim">v</code>, <code class="verbatim">V</code>, <code class="verbatim">C-v</code></td><td>Switches to another visual state, or leaves when it is the current one.</td></tr>
498<tr><td><code class="verbatim">TAB</code>, <code class="verbatim">S-TAB</code></td><td>Cycles visibility, as in normal state.</td></tr>
499</tbody>
500</table>
501<p>The Emacs preset's Org keys (<code class="verbatim">C-c ...</code>, <code class="verbatim">M-h/j/k/l</code>, <code class="verbatim">M-<left></code> and so on) also work in visual state.</p>
502<p>In visual-block state:</p>
503<table>
504<thead>
505<tr><th>Keys</th><th>Does</th></tr>
506</thead>
507<tbody>
508<tr><td>Motions, <code class="verbatim">o</code>, <code class="verbatim">O</code></td><td>Change the block; <code class="verbatim">o</code> and <code class="verbatim">O</code> move the caret to the opposite corner.</td></tr>
509<tr><td><code class="verbatim">d</code>, <code class="verbatim">x</code></td><td>Deletes the block.</td></tr>
510<tr><td><code class="verbatim">y</code></td><td>Yanks the block's lines, joined by newlines.</td></tr>
511<tr><td><code class="verbatim">c</code></td><td>Deletes the block and enters insert state; what you type is copied to every line when you press <code class="verbatim">ESC</code>.</td></tr>
512<tr><td><code class="verbatim">I</code>, <code class="verbatim">A</code></td><td>Inserts before or after the block on every line. <code class="verbatim">A</code> pads short lines with spaces; after <code class="verbatim">$</code>, it appends at each line's end.</td></tr>
513<tr><td><code class="verbatim">r</code> <em>x</em></td><td>Replaces every character of the block with <em>x</em>.</td></tr>
514<tr><td><code class="verbatim">~</code>, <code class="verbatim">u</code>, <code class="verbatim">U</code></td><td>Toggles case, lowercases, uppercases the block.</td></tr>
515<tr><td><code class="verbatim">></code>, <code class="verbatim"><</code></td><td>Indents or outdents the block's lines.</td></tr>
516<tr><td><code class="verbatim">v</code>, <code class="verbatim">V</code></td><td>Switches to visual or visual-line state.</td></tr>
517</tbody>
518</table>
519<p>Block <code class="verbatim">I</code>, <code class="verbatim">A</code> and <code class="verbatim">c</code> copy the typed text to the other lines only when it contains no newline. A yanked block pastes as ordinary lines, not as a block.</p>
520<h3 id="surround">Surround</h3>
521<p>As <code class="verbatim">evil-surround</code>:</p>
522<table>
523<thead>
524<tr><th>Keys</th><th>Does</th></tr>
525</thead>
526<tbody>
527<tr><td><code class="verbatim">ys</code> <em>motion</em> <em>x</em></td><td>Surrounds the motion's text with <em>x</em>: <code class="verbatim">ys$*</code> makes the rest of the line bold. Trailing blanks stay outside.</td></tr>
528<tr><td><code class="verbatim">ys</code> <code class="verbatim">i</code> <em>obj</em> <em>x</em>, <code class="verbatim">ys</code> <code class="verbatim">a</code> <em>obj</em> <em>x</em></td><td>Surrounds a text object: <code>ysiw=</code> wraps the word in <code>=</code> for verbatim.</td></tr>
529<tr><td><code class="verbatim">yss</code> <em>x</em></td><td>Surrounds the line, from its first non-blank.</td></tr>
530<tr><td><code class="verbatim">ds</code> <em>x</em></td><td>Deletes the surrounding <em>x</em>. With an opening bracket, the blanks inside go too.</td></tr>
531<tr><td><code class="verbatim">cs</code> <em>x</em> <em>y</em></td><td>Changes the surrounding <em>x</em> to <em>y</em>.</td></tr>
532<tr><td><code class="verbatim">S</code> <em>x</em> (visual)</td><td>Surrounds the selection.</td></tr>
533</tbody>
534</table>
535<table>
536<thead>
537<tr><th><em>x</em></th><th>Delimiters</th></tr>
538</thead>
539<tbody>
540<tr><td><code class="verbatim">(</code>, <code class="verbatim">[</code>, <code class="verbatim">{</code>, <code class="verbatim"><</code></td><td>The pair with a space inside each: <code class="verbatim">( text )</code>.</td></tr>
541<tr><td><code class="verbatim">)</code>, <code class="verbatim">b</code></td><td><code class="verbatim">(text)</code></td></tr>
542<tr><td><code class="verbatim">]</code>, <code class="verbatim">r</code></td><td><code class="verbatim">[text]</code></td></tr>
543<tr><td><code class="verbatim">}</code>, <code class="verbatim">B</code></td><td><code class="verbatim">{text}</code></td></tr>
544<tr><td><code class="verbatim">></code>, <code class="verbatim">a</code></td><td><code class="verbatim"><text></code></td></tr>
545<tr><td><code class="verbatim">SPC</code></td><td>A space on each side.</td></tr>
546<tr><td>Any other character</td><td>That character on both sides: <code class="verbatim">*</code>, <code class="verbatim">/</code>, <code class="verbatim">_</code>, <code class="verbatim">+</code>, <code>=</code>, <code class="verbatim">~</code>, <code class="verbatim">"</code>, <code class="verbatim">'</code>.</td></tr>
547</tbody>
548</table>
549<p>For <code class="verbatim">ds</code> and <code class="verbatim">cs</code>, brackets are found across lines; any other character is matched on the caret's line. Tags (<code class="verbatim">t</code>) and functions (<code class="verbatim">f</code>) are not supported.</p>
550<h3 id="commenting">Commenting</h3>
551<p><code class="verbatim">gc</code> with a motion or text object, <code class="verbatim">gcc</code> for lines, and <code class="verbatim">gc</code> in visual state toggle Org comments. Lines get <code class="verbatim">#</code> followed by a space at the shallowest indentation among them; blank lines are left alone. When every non-blank line is already a comment, the comments are removed instead. This is <code class="verbatim">comment-or-uncomment-region</code> in Org, as <code class="verbatim">evilnc-comment-operator</code> runs it.</p>
552<h3 id="org-keys-in-normal-state">Org keys in normal state</h3>
553<p>Besides the leader, the preset binds these evil-org and Doom keys in normal state. <code class="verbatim">TAB</code>, <code class="verbatim">S-TAB</code> and <code class="verbatim">RET</code> in normal state, and the Emacs preset's Org keys in every state, are listed in the <a href="#key-reference">key reference</a>. <code class="verbatim">gj</code> and <code class="verbatim">gk</code> move by Org element; see <a href="#motions">Motions</a>.</p>
554<table>
555<thead>
556<tr><th>Keys</th><th>Command</th></tr>
557</thead>
558<tbody>
559<tr><td><code class="verbatim">TAB</code></td><td>Cycle Visibility (<code class="verbatim">org-cycle</code>). Also in visual state.</td></tr>
560<tr><td><code class="verbatim">S-TAB</code></td><td>Cycle Global Visibility. Also in visual and insert state.</td></tr>
561<tr><td><code class="verbatim">RET</code></td><td>Act at Point (<code class="verbatim">+org/dwim-at-point</code>).</td></tr>
562<tr><td><code class="verbatim">z a</code></td><td>Toggle Fold (<code class="verbatim">+org/toggle-fold</code>). On a heading line: a folded heading opens one level, showing its body and its child headings folded; an open one folds.</td></tr>
563<tr><td><code class="verbatim">z o</code></td><td>Open Fold (<code class="verbatim">+org/open-fold</code>). On a heading line, a folded heading opens one level; an open one stays as it is.</td></tr>
564<tr><td><code class="verbatim">z c</code></td><td>Close Fold (<code class="verbatim">outline-hide-subtree</code>). Folds the subtree the caret is in, from anywhere inside it.</td></tr>
565<tr><td><code class="verbatim">z A</code></td><td>Cycle Global Visibility.</td></tr>
566<tr><td><code class="verbatim">g h</code></td><td>Up to Parent Heading.</td></tr>
567<tr><td><code class="verbatim">] h</code>, <code class="verbatim">[ h</code></td><td>Next or previous heading at the same level.</td></tr>
568<tr><td><code class="verbatim">] b</code>, <code class="verbatim">[ b</code></td><td>Next or previous buffer.</td></tr>
569<tr><td><code class="verbatim">M-h</code>, <code class="verbatim">M-j</code>, <code class="verbatim">M-k</code>, <code class="verbatim">M-l</code></td><td><code class="verbatim">M-<left></code>, <code class="verbatim">M-<down></code>, <code class="verbatim">M-<up></code>, <code class="verbatim">M-<right></code>: promote, move down, move up, demote on headings; the same for items; move columns and rows in tables. Also in insert and visual state.</td></tr>
570<tr><td><code class="verbatim">M-H</code>, <code class="verbatim">M-J</code>, <code class="verbatim">M-K</code>, <code class="verbatim">M-L</code></td><td>The <code class="verbatim">M-S-</code> arrow forms: subtree promote and demote, table row and column insert and delete. Also in insert and visual state.</td></tr>
571<tr><td><code class="verbatim">C-S-h</code>, <code class="verbatim">C-S-j</code>, <code class="verbatim">C-S-k</code>, <code class="verbatim">C-S-l</code></td><td>The <code class="verbatim">S-</code> arrow forms: TODO keyword, priority, timestamp and property value changes. Also in insert state.</td></tr>
572</tbody>
573</table>
574<h3 id="the-leader">The leader</h3>
575<p><code class="verbatim">SPC</code> in normal state is Doom's leader and <code class="verbatim">SPC m</code> its local leader for Org. Pause after <code class="verbatim">SPC</code> to see the key hints.</p>
576<table>
577<thead>
578<tr><th>Keys</th><th>Command</th></tr>
579</thead>
580<tbody>
581<tr><td><code class="verbatim">SPC ,</code></td><td>Switch to Buffer… (<code class="verbatim">app.buffer.switch</code>)</td></tr>
582<tr><td><code class="verbatim">SPC .</code></td><td>Quick Open… (<code class="verbatim">app.quick-open</code>)</td></tr>
583<tr><td><code class="verbatim">SPC /</code></td><td>Search Notes (<code class="verbatim">app.search</code>)</td></tr>
584<tr><td><code class="verbatim">SPC :</code></td><td>Command Palette… (<code class="verbatim">app.palette</code>)</td></tr>
585<tr><td><code class="verbatim">SPC `</code></td><td>Last Buffer (<code class="verbatim">app.buffer.last</code>)</td></tr>
586<tr><td><code class="verbatim">SPC b B</code></td><td>Switch to Buffer… (<code class="verbatim">app.buffer.switch</code>)</td></tr>
587<tr><td><code class="verbatim">SPC b K</code></td><td>Close All Buffers (<code class="verbatim">app.buffer.kill-all</code>)</td></tr>
588<tr><td><code class="verbatim">SPC b O</code></td><td>Close Other Buffers (<code class="verbatim">app.buffer.kill-others</code>)</td></tr>
589<tr><td><code class="verbatim">SPC b S</code></td><td>Save All Buffers (<code class="verbatim">app.save-all</code>)</td></tr>
590<tr><td><code class="verbatim">SPC b [</code></td><td>Previous Buffer (<code class="verbatim">app.buffer.previous</code>)</td></tr>
591<tr><td><code class="verbatim">SPC b ]</code></td><td>Next Buffer (<code class="verbatim">app.buffer.next</code>)</td></tr>
592<tr><td><code class="verbatim">SPC b b</code></td><td>Switch to Buffer… (<code class="verbatim">app.buffer.switch</code>)</td></tr>
593<tr><td><code class="verbatim">SPC b d</code></td><td>Close Buffer (<code class="verbatim">app.buffer.kill</code>)</td></tr>
594<tr><td><code class="verbatim">SPC b k</code></td><td>Close Buffer (<code class="verbatim">app.buffer.kill</code>)</td></tr>
595<tr><td><code class="verbatim">SPC b n</code></td><td>Next Buffer (<code class="verbatim">app.buffer.next</code>)</td></tr>
596<tr><td><code class="verbatim">SPC b p</code></td><td>Previous Buffer (<code class="verbatim">app.buffer.previous</code>)</td></tr>
597<tr><td><code class="verbatim">SPC b s</code></td><td>Save (<code class="verbatim">app.save</code>)</td></tr>
598<tr><td><code class="verbatim">SPC f f</code></td><td>Quick Open… (<code class="verbatim">app.quick-open</code>)</td></tr>
599<tr><td><code class="verbatim">SPC f s</code></td><td>Save (<code class="verbatim">app.save</code>)</td></tr>
600<tr><td><code class="verbatim">SPC h r r</code></td><td>Reload Keymap (<code class="verbatim">app.reload-keymap</code>)</td></tr>
601<tr><td><code class="verbatim">SPC n l</code></td><td>Store Link (<code class="verbatim">org.link.store</code>)</td></tr>
602<tr><td><code class="verbatim">SPC o a</code></td><td>Agenda (<code class="verbatim">app.agenda</code>)</td></tr>
603<tr><td><code class="verbatim">SPC q q</code></td><td>Quit Orgstar (<code class="verbatim">app.quit</code>)</td></tr>
604<tr><td><code class="verbatim">SPC s p</code></td><td>Search Notes (<code class="verbatim">app.search</code>)</td></tr>
605<tr><td><code class="verbatim">SPC s s</code></td><td>Find (<code class="verbatim">edit.find</code>)</td></tr>
606<tr><td><code class="verbatim">SPC SPC</code></td><td>Quick Open… (<code class="verbatim">app.quick-open</code>)</td></tr>
607<tr><td><code class="verbatim">SPC t s</code></td><td>Check Spelling While Typing (<code class="verbatim">editor.toggle-spell-check</code>)</td></tr>
608<tr><td><code class="verbatim">SPC t w</code></td><td>Truncate or Wrap Long Lines (<code class="verbatim">editor.toggle-truncate-lines</code>)</td></tr>
609<tr><td><code class="verbatim">SPC X</code></td><td>Capture… (<code class="verbatim">app.capture</code>)</td></tr>
610<tr><td><code class="verbatim">SPC z t</code></td><td>Clock Report (<code class="verbatim">app.clock.report</code>)</td></tr>
611<tr><td><code class="verbatim">SPC m '</code></td><td>Edit Block (<code class="verbatim">org.edit-special</code>)</td></tr>
612<tr><td><code class="verbatim">SPC m .</code></td><td>Go to Heading… (<code class="verbatim">org.goto</code>)</td></tr>
613<tr><td><code class="verbatim">SPC m A</code></td><td>Archive Subtree (<code class="verbatim">app.archive</code>)</td></tr>
614<tr><td><code class="verbatim">SPC m b -</code></td><td>Insert Table Rule (<code class="verbatim">org.table.insert-hline</code>)</td></tr>
615<tr><td><code class="verbatim">SPC m b a</code></td><td>Align Table (<code class="verbatim">org.table.align</code>)</td></tr>
616<tr><td><code class="verbatim">SPC m b d c</code></td><td>Delete Table Column (<code class="verbatim">org.table.delete-column</code>)</td></tr>
617<tr><td><code class="verbatim">SPC m b d r</code></td><td>Delete Table Row (<code class="verbatim">org.table.kill-row</code>)</td></tr>
618<tr><td><code class="verbatim">SPC m b i c</code></td><td>Insert Table Column (<code class="verbatim">org.table.insert-column</code>)</td></tr>
619<tr><td><code class="verbatim">SPC m b i h</code></td><td>Insert Table Rule (<code class="verbatim">org.table.insert-hline</code>)</td></tr>
620<tr><td><code class="verbatim">SPC m b i r</code></td><td>Insert Table Row (<code class="verbatim">org.table.insert-row</code>)</td></tr>
621<tr><td><code class="verbatim">SPC m b r</code></td><td>Recalculate Table (<code class="verbatim">org.table.recalc-all</code>)</td></tr>
622<tr><td><code class="verbatim">SPC m c E</code></td><td>Set Effort (<code class="verbatim">org.effort.set</code>)</td></tr>
623<tr><td><code class="verbatim">SPC m c G</code></td><td>Go to Recent Clocked Entry… (<code class="verbatim">app.clock.goto-recent</code>)</td></tr>
624<tr><td><code class="verbatim">SPC m c I</code></td><td>Clock In to Last Entry (<code class="verbatim">app.clock.in-last</code>)</td></tr>
625<tr><td><code class="verbatim">SPC m c R</code></td><td>Clock Report (<code class="verbatim">app.clock.report</code>)</td></tr>
626<tr><td><code class="verbatim">SPC m c c</code></td><td>Cancel Clock (<code class="verbatim">app.clock.cancel</code>)</td></tr>
627<tr><td><code class="verbatim">SPC m c d</code></td><td>Mark as Default Clock Task (<code class="verbatim">app.clock.default</code>)</td></tr>
628<tr><td><code class="verbatim">SPC m c g</code></td><td>Go to Clocked Entry (<code class="verbatim">app.clock.goto</code>)</td></tr>
629<tr><td><code class="verbatim">SPC m c i</code></td><td>Clock In (<code class="verbatim">app.clock.in</code>)</td></tr>
630<tr><td><code class="verbatim">SPC m c o</code></td><td>Clock Out (<code class="verbatim">app.clock.out</code>)</td></tr>
631<tr><td><code class="verbatim">SPC m c r</code></td><td>Resolve Open Clocks… (<code class="verbatim">app.clock.resolve</code>)</td></tr>
632<tr><td><code class="verbatim">SPC m d T</code></td><td>Insert Inactive Timestamp (<code class="verbatim">org.timestamp.inactive</code>)</td></tr>
633<tr><td><code class="verbatim">SPC m d d</code></td><td>Set Deadline (<code class="verbatim">org.deadline</code>)</td></tr>
634<tr><td><code class="verbatim">SPC m d s</code></td><td>Schedule (<code class="verbatim">org.schedule</code>)</td></tr>
635<tr><td><code class="verbatim">SPC m d t</code></td><td>Insert Timestamp (<code class="verbatim">org.timestamp.active</code>)</td></tr>
636<tr><td><code class="verbatim">SPC m e h h</code></td><td>Export to HTML (<code class="verbatim">app.export.html</code>)</td></tr>
637<tr><td><code class="verbatim">SPC m e h o</code></td><td>Export to HTML and Open (<code class="verbatim">app.export.html-open</code>)</td></tr>
638<tr><td><code class="verbatim">SPC m e l p</code></td><td>Export to PDF with Emacs (<code class="verbatim">app.export.pdf</code>)</td></tr>
639<tr><td><code class="verbatim">SPC m e m m</code></td><td>Export to Markdown (<code class="verbatim">app.export.markdown</code>)</td></tr>
640<tr><td><code class="verbatim">SPC m h</code></td><td>Toggle Heading (<code class="verbatim">org.heading.toggle</code>)</td></tr>
641<tr><td><code class="verbatim">SPC m i</code></td><td>Toggle Item (<code class="verbatim">org.item.toggle</code>)</td></tr>
642<tr><td><code class="verbatim">SPC m l i</code></td><td>Store ID Link (<code class="verbatim">org.id.store-link</code>)</td></tr>
643<tr><td><code class="verbatim">SPC m l l</code></td><td>Insert Link… (<code class="verbatim">org.link.insert</code>)</td></tr>
644<tr><td><code class="verbatim">SPC m l s</code></td><td>Store Link (<code class="verbatim">org.link.store</code>)</td></tr>
645<tr><td><code class="verbatim">SPC m o</code></td><td>Set Property… (<code class="verbatim">org.property.read-and-set</code>)</td></tr>
646<tr><td><code class="verbatim">SPC m p d</code></td><td>Lower Priority (<code class="verbatim">org.priority.down</code>)</td></tr>
647<tr><td><code class="verbatim">SPC m p p</code></td><td>Set Priority… (<code class="verbatim">org.priority.set</code>)</td></tr>
648<tr><td><code class="verbatim">SPC m p u</code></td><td>Raise Priority (<code class="verbatim">org.priority.up</code>)</td></tr>
649<tr><td><code class="verbatim">SPC m q</code></td><td>Set Tags (<code class="verbatim">org.tags.set</code>)</td></tr>
650<tr><td><code class="verbatim">SPC m r r</code></td><td>Refile… (<code class="verbatim">app.refile</code>)</td></tr>
651<tr><td><code class="verbatim">SPC m s A</code></td><td>Archive Subtree (<code class="verbatim">app.archive</code>)</td></tr>
652<tr><td><code class="verbatim">SPC m s N</code></td><td>Widen (<code class="verbatim">org.widen</code>)</td></tr>
653<tr><td><code class="verbatim">SPC m s S</code></td><td>Sort Entries (<code class="verbatim">org.sort</code>)</td></tr>
654<tr><td><code class="verbatim">SPC m s a</code></td><td>Toggle ARCHIVE Tag (<code class="verbatim">org.archive.toggle-tag</code>)</td></tr>
655<tr><td><code class="verbatim">SPC m s c</code></td><td>Clone Subtree with Time Shift (<code class="verbatim">org.subtree.clone</code>)</td></tr>
656<tr><td><code class="verbatim">SPC m s d</code></td><td>Cut Subtree (<code class="verbatim">org.subtree.cut</code>)</td></tr>
657<tr><td><code class="verbatim">SPC m s h</code></td><td>Promote Subtree (<code class="verbatim">org.subtree.promote</code>)</td></tr>
658<tr><td><code class="verbatim">SPC m s j</code></td><td>Move Subtree Down (<code class="verbatim">org.subtree.down</code>)</td></tr>
659<tr><td><code class="verbatim">SPC m s k</code></td><td>Move Subtree Up (<code class="verbatim">org.subtree.up</code>)</td></tr>
660<tr><td><code class="verbatim">SPC m s l</code></td><td>Demote Subtree (<code class="verbatim">org.subtree.demote</code>)</td></tr>
661<tr><td><code class="verbatim">SPC m s n</code></td><td>Narrow to Subtree (<code class="verbatim">org.narrow.subtree</code>)</td></tr>
662<tr><td><code class="verbatim">SPC m s r</code></td><td>Refile… (<code class="verbatim">app.refile</code>)</td></tr>
663<tr><td><code class="verbatim">SPC m s s</code></td><td>Sparse Tree… (<code class="verbatim">org.sparse-tree</code>)</td></tr>
664<tr><td><code class="verbatim">SPC m t</code></td><td>Cycle TODO State (<code class="verbatim">org.todo.cycle</code>)</td></tr>
665<tr><td><code class="verbatim">SPC m x</code></td><td>Toggle Checkbox (<code class="verbatim">org.checkbox.toggle</code>)</td></tr>
666</tbody>
667</table>
668<h3 id="ex-commands">Ex commands</h3>
669<p><code class="verbatim">:</code> opens a prompt in the echo area. Orgstar understands these:</p>
670<table>
671<thead>
672<tr><th>Command</th><th>Does</th></tr>
673</thead>
674<tbody>
675<tr><td><code class="verbatim">:w</code>, <code class="verbatim">:write</code></td><td>Saves the file.</td></tr>
676<tr><td><code class="verbatim">:q</code>, <code class="verbatim">:quit</code>, <code class="verbatim">:q!</code></td><td>Closes the window. Closing the last window quits Orgstar, which asks about unsaved changes as usual.</td></tr>
677<tr><td><code class="verbatim">:wq</code>, <code class="verbatim">:wq!</code>, <code class="verbatim">:x</code></td><td>Saves, then closes the window.</td></tr>
678<tr><td><code class="verbatim">:e</code> <em>file</em>, <code class="verbatim">:edit</code> <em>file</em></td><td>Opens <em>file</em>, relative to the current file's folder; <code class="verbatim">~</code> is expanded.</td></tr>
679<tr><td><code class="verbatim">:e</code>, <code class="verbatim">:e!</code>, <code class="verbatim">:edit</code>, <code class="verbatim">:edit!</code></td><td>Reloads the file from disk; unsaved changes go to the recovery versions.</td></tr>
680<tr><td><code class="verbatim">:bn</code>, <code class="verbatim">:bnext</code></td><td>Next buffer.</td></tr>
681<tr><td><code class="verbatim">:bp</code>, <code class="verbatim">:bprevious</code>, <code class="verbatim">:bN</code>, <code class="verbatim">:bNext</code></td><td>Previous buffer.</td></tr>
682<tr><td><code class="verbatim">:bd</code>, <code class="verbatim">:bdelete</code>, <code class="verbatim">:bd!</code>, <code class="verbatim">:bw</code>, <code class="verbatim">:bwipeout</code></td><td>Closes the buffer.</td></tr>
683<tr><td><code class="verbatim">:b</code>, <code class="verbatim">:buffer</code>, <code class="verbatim">:ls</code>, <code class="verbatim">:buffers</code>, <code class="verbatim">:files</code></td><td>Asks for a buffer to switch to.</td></tr>
684<tr><td><code class="verbatim">:</code> <em>N</em></td><td>Goes to line <em>N</em>.</td></tr>
685<tr><td><code class="verbatim">:s/</code> <em>pattern</em> <code class="verbatim">/</code> <em>replacement</em> <code class="verbatim">/</code> <em>flags</em></td><td>Replaces on the current line. Flags: <code class="verbatim">g</code> for every match on the line, <code class="verbatim">i</code> to ignore case. <code class="verbatim">\1</code> in the replacement is the first group.</td></tr>
686<tr><td><code class="verbatim">:%s/</code> <em>pattern</em> <code class="verbatim">/</code> <em>replacement</em> <code class="verbatim">/</code> <em>flags</em></td><td>The same on every line.</td></tr>
687<tr><td><code class="verbatim">:noh</code>, <code class="verbatim">:nohlsearch</code></td><td>Accepted; does nothing.</td></tr>
688</tbody>
689</table>
690<p>Anything else shows <code class="verbatim">Not an editor command</code>. Ranges other than <code class="verbatim">%</code>, the <code class="verbatim">c</code> flag, <code class="verbatim">:g</code>, <code class="verbatim">:normal</code> and <code class="verbatim">:set</code> are not available, and <code class="verbatim">:</code> does not work in visual state.</p>
691<h3 id="not-available">Not available</h3>
692<p>Things evil users may reach for that Orgstar does not have: <code class="verbatim">zz</code>, <code class="verbatim">zt</code> and the other scroll and fold <code class="verbatim">z</code> commands except <code class="verbatim">za</code>, <code class="verbatim">zc</code>, <code class="verbatim">zo</code> and <code class="verbatim">zA</code>; <code class="verbatim">C-a</code> and <code class="verbatim">C-x</code> to increment numbers; <code class="verbatim">gi</code>, <code class="verbatim">g;</code>, <code class="verbatim">gJ</code>; replace state (<code class="verbatim">R</code>); <code class="verbatim">&</code>; <code class="verbatim">q:</code>; the numbered and read-only registers; tag and sentence text objects.</p>
693<h2 id="keys-in-other-windows">Keys in other windows</h2>
694<p>The block editor, opened by Edit Block (<code class="verbatim">C-c '</code>) or Edit Table Field (<code class="verbatim">C-c `</code>), is a plain editor with its own two bindings in every preset: <code class="verbatim">C-c '</code> or <code class="verbatim">⌘↩</code> saves and returns, <code class="verbatim">Esc</code> or <code class="verbatim">C-c C-k</code> leaves without saving. It does not use the Doom preset's Vim editing or your <code class="verbatim">keymap.toml</code>. See <a href="11-code-blocks.html">Code blocks</a>.</p>
695<p>The Agenda window has its own keys, modelled on <code class="verbatim">org-agenda-mode</code>, which <code class="verbatim">keymap.toml</code> does not change:</p>
696<table>
697<thead>
698<tr><th>Key</th><th>Does</th></tr>
699</thead>
700<tbody>
701<tr><td><code class="verbatim">RET</code></td><td>Opens the selected entry.</td></tr>
702<tr><td><code class="verbatim">f</code>, <code class="verbatim">b</code></td><td>Next or previous span (agenda views).</td></tr>
703<tr><td><code class="verbatim">.</code></td><td>Back to today (agenda views).</td></tr>
704<tr><td><code class="verbatim">\</code></td><td>Tag filter (<code class="verbatim">+tag-tag</code>).</td></tr>
705<tr><td><code>=</code></td><td>Regexp filter (<code class="verbatim">-re</code> drops matches).</td></tr>
706<tr><td><code class="verbatim"><</code></td><td>Filter to the selected entry's category, or clear the category filter.</td></tr>
707<tr><td>|</td><td>Removes every filter.</td></tr>
708<tr><td><code class="verbatim">l</code></td><td>Log mode on or off (agenda views).</td></tr>
709<tr><td><code class="verbatim">g</code>, <code class="verbatim">r</code></td><td>Rebuilds the views.</td></tr>
710<tr><td><code class="verbatim">t</code></td><td>Cycle TODO State.</td></tr>
711<tr><td><code class="verbatim">+</code>, <code class="verbatim">-</code></td><td>Raise or lower priority.</td></tr>
712<tr><td><code class="verbatim">:</code></td><td>Set tags.</td></tr>
713<tr><td><code class="verbatim">S-<right></code>, <code class="verbatim">S-<left></code></td><td>Moves the entry's timestamp a day later or earlier.</td></tr>
714<tr><td><code class="verbatim">I</code>, <code class="verbatim">O</code>, <code class="verbatim">X</code></td><td>Clock in, clock out, cancel the clock.</td></tr>
715<tr><td><code class="verbatim">m</code>, <code class="verbatim">u</code>, <code class="verbatim">U</code></td><td>Marks, unmarks, unmarks all entries for bulk actions.</td></tr>
716<tr><td><code class="verbatim">B</code></td><td>Bulk action on the marked entries.</td></tr>
717<tr><td><code class="verbatim">C-c C-t</code></td><td>Cycle TODO State.</td></tr>
718<tr><td><code class="verbatim">C-c C-s</code>, <code class="verbatim">C-c C-d</code></td><td>Schedule, set deadline.</td></tr>
719<tr><td><code class="verbatim">C-c C-q</code></td><td>Set tags.</td></tr>
720<tr><td><code class="verbatim">C-c C-w</code></td><td>Refile.</td></tr>
721<tr><td><code class="verbatim">C-c $</code>, <code class="verbatim">C-c C-x C-s</code></td><td>Archive.</td></tr>
722</tbody>
723</table>
724<p>See <a href="07-agenda.html">Agenda</a> for what these do. In the Capture window, typing a template's key picks it, <code class="verbatim">⌘↩</code> files the entry and <code class="verbatim">Esc</code> cancels; see <a href="08-capture.html">Capture</a>.</p>
725<h2 id="ios-and-ipados">iOS and iPadOS</h2>
726<p>With a hardware keyboard, the iOS app runs the Emacs preset's bindings, whatever preset the Mac uses. It does not read <code class="verbatim">keymap.toml</code> and has no Vim editing.</p>
727<ul>
728<li>Option acts as Meta when the key starts a binding (<code class="verbatim">M-RET</code>, <code class="verbatim">M-<left></code>); otherwise Option types characters as usual.</li>
729<li>Keys with <code class="verbatim">⌘</code> are left to iOS.</li>
730<li>Movement and editing keys bound to <code class="verbatim">edit.</code> commands (<code class="verbatim">C-a</code>, <code class="verbatim">C-e</code>, <code class="verbatim">C-k</code> and so on) are left to the iOS text system, except undo.</li>
731<li>Of the <code class="verbatim">app.</code> commands only the clock commands run from keys: <code class="verbatim">C-c C-x C-i</code>, <code class="verbatim">C-c C-x C-o</code>, <code class="verbatim">C-c C-x C-q</code>, <code class="verbatim">C-c C-x C-j</code>, <code class="verbatim">C-c C-x C-x</code> and <code class="verbatim">C-c C-x C-z</code>. Other <code class="verbatim">app.</code> keys, and editor commands such as narrowing, show <code class="verbatim">Not available on iOS yet</code>.</li>
732<li>A sequence of two or more keys whose command cannot run at the caret runs it anyway and shows its message, as on the Mac (for example <code class="verbatim">Not on a heading</code>).</li>
733<li>A pending prefix shows as a message, without key hints.</li>
734</ul>
735<p>The on-screen key bar's buttons run what their Emacs keys run at the caret (Fold is <code class="verbatim">TAB</code>, Promote is <code class="verbatim">M-<left></code>, TODO is <code class="verbatim">C-c C-t</code>). See <a href="14-ios.html">iOS</a>.</p>
736<h2 id="key-reference">Key reference</h2>
737<p>Every binding in the three presets, generated from the presets themselves. Each command's id, for <code class="verbatim">keymap.toml</code>, follows its title.</p>
738<ul>
739<li><strong>Emacs</strong> lists the Emacs preset's keys.</li>
740<li><strong>Mac</strong> lists the Mac preset's keys, with macOS symbols. <code class="verbatim">⇥</code> is Tab and <code class="verbatim">↩</code> Return.</li>
741<li><strong>Doom</strong> lists the keys the Doom preset adds. Every Emacs-preset key that starts with <code class="verbatim">C-c</code> or <code class="verbatim">C-x</code>, the <code class="verbatim">M-</code> and <code class="verbatim">S-</code> arrow keys, <code class="verbatim">M-RET</code>, <code class="verbatim">M-S-RET</code>, <code class="verbatim">C-RET</code>, <code class="verbatim">M-x</code> and <code class="verbatim">M-q</code> also work in the Doom preset, in normal, insert and visual states, so they are not repeated in the Doom column. Doom keys marked (N), (I) or (V) work only in normal, insert or visual state; unmarked ones work in all three.</li>
742</ul>
743<p>When a key appears in several rows, it runs the command whose condition holds at the caret: for example <code class="verbatim">M-<right></code> demotes a heading, indents a list item and moves a table column. The descriptions say where each one applies. Movement and text editing in the Doom preset are the Vim keys above, so the Doom column is empty for those rows.</p>
744<h3 id="movement-and-the-region">Movement and the region</h3>
745<table>
746<thead>
747<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
748</thead>
749<tbody>
750<tr><td>Forward Character (<code class="verbatim">edit.forward-char</code>)</td><td><code class="verbatim">C-f</code></td><td>—</td><td>—</td><td>Moves forward one character (<code class="verbatim">forward-char</code>).</td></tr>
751<tr><td>Backward Character (<code class="verbatim">edit.backward-char</code>)</td><td><code class="verbatim">C-b</code></td><td>—</td><td>—</td><td>Moves back one character (<code class="verbatim">backward-char</code>).</td></tr>
752<tr><td>Next Line (<code class="verbatim">edit.next-line</code>)</td><td><code class="verbatim">C-n</code></td><td>—</td><td>—</td><td>Moves down one line (<code class="verbatim">next-line</code>).</td></tr>
753<tr><td>Previous Line (<code class="verbatim">edit.previous-line</code>)</td><td><code class="verbatim">C-p</code></td><td>—</td><td>—</td><td>Moves up one line (<code class="verbatim">previous-line</code>).</td></tr>
754<tr><td>Beginning of Line (<code class="verbatim">edit.beginning-of-line</code>)</td><td><code class="verbatim">C-a</code></td><td>—</td><td>—</td><td>Moves to the start of the line (<code class="verbatim">move-beginning-of-line</code>).</td></tr>
755<tr><td>End of Line (<code class="verbatim">edit.end-of-line</code>)</td><td><code class="verbatim">C-e</code></td><td>—</td><td>—</td><td>Moves to the end of the line (<code class="verbatim">move-end-of-line</code>).</td></tr>
756<tr><td>Forward Word (<code class="verbatim">edit.forward-word</code>)</td><td><code class="verbatim">M-f</code></td><td>—</td><td>—</td><td>Moves forward one word (<code class="verbatim">forward-word</code>).</td></tr>
757<tr><td>Backward Word (<code class="verbatim">edit.backward-word</code>)</td><td><code class="verbatim">M-b</code></td><td>—</td><td>—</td><td>Moves back one word (<code class="verbatim">backward-word</code>).</td></tr>
758<tr><td>Beginning of Buffer (<code class="verbatim">edit.beginning-of-buffer</code>)</td><td><code class="verbatim">M-<</code></td><td>—</td><td>—</td><td>Moves to the start of the file (<code class="verbatim">beginning-of-buffer</code>).</td></tr>
759<tr><td>End of Buffer (<code class="verbatim">edit.end-of-buffer</code>)</td><td><code class="verbatim">M-></code></td><td>—</td><td>—</td><td>Moves to the end of the file (<code class="verbatim">end-of-buffer</code>).</td></tr>
760<tr><td>Scroll Up (<code class="verbatim">edit.scroll-up</code>)</td><td><code class="verbatim">C-v</code></td><td>—</td><td>—</td><td>Scrolls down one screen (<code class="verbatim">scroll-up-command</code>).</td></tr>
761<tr><td>Scroll Down (<code class="verbatim">edit.scroll-down</code>)</td><td><code class="verbatim">M-v</code></td><td>—</td><td>—</td><td>Scrolls up one screen (<code class="verbatim">scroll-down-command</code>).</td></tr>
762<tr><td>Recenter (<code class="verbatim">edit.recenter</code>)</td><td><code class="verbatim">C-l</code></td><td>—</td><td>—</td><td>Scrolls so the caret's line is in the middle of the window (<code class="verbatim">recenter-top-bottom</code>, without the cycling).</td></tr>
763<tr><td>Set Mark (<code class="verbatim">edit.set-mark</code>)</td><td><code class="verbatim">C-SPC</code></td><td>—</td><td>—</td><td>Sets the mark at the caret. Until the next command that is not a movement, movement keys extend the selection (<code class="verbatim">set-mark-command</code>).</td></tr>
764<tr><td>Quit (<code class="verbatim">edit.keyboard-quit</code>)</td><td><code class="verbatim">C-g</code></td><td>—</td><td>—</td><td>Drops the mark and the selection, and shows <code class="verbatim">Quit</code> (<code class="verbatim">keyboard-quit</code>).</td></tr>
765<tr><td>Select All (<code class="verbatim">edit.select-all</code>)</td><td><code class="verbatim">C-x h</code></td><td>—</td><td>—</td><td>Selects the whole file (<code class="verbatim">mark-whole-buffer</code>).</td></tr>
766</tbody>
767</table>
768<h3 id="editing">Editing</h3>
769<table>
770<thead>
771<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
772</thead>
773<tbody>
774<tr><td>Delete Character (<code class="verbatim">edit.delete-char</code>)</td><td><code class="verbatim">C-d</code></td><td>—</td><td>—</td><td>Deletes the character after the caret (<code class="verbatim">delete-char</code>).</td></tr>
775<tr><td>Kill Word (<code class="verbatim">edit.kill-word</code>)</td><td><code class="verbatim">M-d</code></td><td>—</td><td>—</td><td>Deletes to the end of the word (<code class="verbatim">kill-word</code>).</td></tr>
776<tr><td>Kill Word Backward (<code class="verbatim">edit.backward-kill-word</code>)</td><td><code class="verbatim">M-DEL</code></td><td>—</td><td>—</td><td>Deletes to the start of the word (<code class="verbatim">backward-kill-word</code>).</td></tr>
777<tr><td>Kill Line (<code class="verbatim">edit.kill-line</code>)</td><td><code class="verbatim">C-k</code></td><td>—</td><td>—</td><td>Deletes to the end of the line, or the newline at its end, into the macOS kill buffer (<code class="verbatim">kill-line</code>).</td></tr>
778<tr><td>Kill Region (<code class="verbatim">edit.kill-region</code>)</td><td><code class="verbatim">C-w</code></td><td>—</td><td>—</td><td>Cuts the selection to the clipboard (<code class="verbatim">kill-region</code>).</td></tr>
779<tr><td>Copy Region (<code class="verbatim">edit.copy-region</code>)</td><td><code class="verbatim">M-w</code></td><td>—</td><td>—</td><td>Copies the selection to the clipboard (<code class="verbatim">kill-ring-save</code>).</td></tr>
780<tr><td>Yank (<code class="verbatim">edit.yank</code>)</td><td><code class="verbatim">C-y</code></td><td>—</td><td>—</td><td>Inserts the text last deleted with Kill Line, from the macOS kill buffer, not the clipboard (<code class="verbatim">yank</code>). There is no kill ring.</td></tr>
781<tr><td>Undo (<code class="verbatim">edit.undo</code>)</td><td><code class="verbatim">C-/</code>, <code class="verbatim">C-_</code>, <code class="verbatim">C-x u</code></td><td>—</td><td>—</td><td>Undoes the last change (<code class="verbatim">undo</code>).</td></tr>
782<tr><td>Transpose Characters (<code class="verbatim">edit.transpose-chars</code>)</td><td><code class="verbatim">C-t</code></td><td>—</td><td>—</td><td>Swaps the characters around the caret (<code class="verbatim">transpose-chars</code>).</td></tr>
783<tr><td>Find (<code class="verbatim">edit.find</code>)</td><td><code class="verbatim">C-s</code>, <code class="verbatim">C-r</code></td><td>—</td><td><code class="verbatim">SPC s s</code> (N)</td><td>Opens the find bar. <code class="verbatim">C-s</code> and <code class="verbatim">C-r</code> both open it; there is no incremental search (<code class="verbatim">isearch-forward</code>).</td></tr>
784<tr><td>Find and Replace (<code class="verbatim">edit.replace</code>)</td><td><code class="verbatim">M-%</code></td><td>—</td><td>—</td><td>Opens the find bar with replace (<code class="verbatim">query-replace</code>).</td></tr>
785<tr><td>Find Next (<code class="verbatim">edit.find-next</code>)</td><td>—</td><td>—</td><td>—</td><td>Goes to the next match of the find bar's text.</td></tr>
786<tr><td>Find Previous (<code class="verbatim">edit.find-previous</code>)</td><td>—</td><td>—</td><td>—</td><td>Goes to the previous match.</td></tr>
787<tr><td>Use Selection for Find (<code class="verbatim">edit.use-selection-for-find</code>)</td><td>—</td><td>—</td><td>—</td><td>Puts the selection in the find bar.</td></tr>
788<tr><td>Complete at Point (<code class="verbatim">editor.complete</code>)</td><td><code class="verbatim">C-M-i</code></td><td>—</td><td><code class="verbatim">C-SPC</code> (I), <code class="verbatim">C-@</code> (I)</td><td>Completes what is typed at the caret: <code class="verbatim">#+</code> keywords and their values, link types, entities, tags, TODO keywords, headings, drawers, properties, src languages and header arguments, and <code class="verbatim"><s</code>-style templates (<code class="verbatim">completion-at-point</code>). One candidate is inserted; several open a list.</td></tr>
789<tr><td>Fill Paragraph (<code class="verbatim">org.fill-paragraph</code>)</td><td><code class="verbatim">M-q</code></td><td><code class="verbatim">⌃⌘P</code></td><td>—</td><td>Refills the paragraph or list item to the fill column (<code class="verbatim">org-fill-paragraph</code>); with a selection, every paragraph it touches. In the Doom preset, <code class="verbatim">gq</code> and <code class="verbatim">gw</code> fill the lines a motion covers; see <a href="#operators">Operators</a>.</td></tr>
790</tbody>
791</table>
792<h3 id="outline-visibility-and-narrowing">Outline: visibility and narrowing</h3>
793<table>
794<thead>
795<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
796</thead>
797<tbody>
798<tr><td>Cycle Visibility (<code class="verbatim">org.cycle</code>)</td><td><code class="verbatim">TAB</code></td><td><code class="verbatim">⇥</code></td><td><code class="verbatim">TAB</code> (N, V)</td><td>On a heading, cycles its subtree through folded, children and everything; on the first or last line of a drawer or block, folds or unfolds it (<code class="verbatim">org-cycle</code>). Elsewhere, <code class="verbatim">TAB</code> types a tab in the Emacs and Mac presets.</td></tr>
799<tr><td>Toggle Fold (<code class="verbatim">org.fold.toggle</code>)</td><td>—</td><td>—</td><td><code class="verbatim">z a</code> (N)</td><td>On a heading line, opens a folded heading one level or folds an open one (<code class="verbatim">+org/toggle-fold</code>).</td></tr>
800<tr><td>Open Fold (<code class="verbatim">org.fold.open</code>)</td><td>—</td><td>—</td><td><code class="verbatim">z o</code> (N)</td><td>On a heading line, opens a folded heading one level (<code class="verbatim">+org/open-fold</code>).</td></tr>
801<tr><td>Close Fold (<code class="verbatim">org.fold.close</code>)</td><td>—</td><td>—</td><td><code class="verbatim">z c</code> (N)</td><td>Folds the subtree the caret is in (<code class="verbatim">outline-hide-subtree</code>).</td></tr>
802<tr><td>Cycle Global Visibility (<code class="verbatim">org.cycle-global</code>)</td><td><code class="verbatim">S-TAB</code></td><td><code class="verbatim">⇧⇥</code></td><td><code class="verbatim">S-TAB</code>, <code class="verbatim">z A</code> (N)</td><td>Cycles the whole file through overview, contents and everything (<code class="verbatim">org-global-cycle</code>).</td></tr>
803<tr><td>Narrow to Subtree (<code class="verbatim">org.narrow.subtree</code>)</td><td><code class="verbatim">C-x n s</code></td><td>—</td><td><code class="verbatim">SPC m s n</code> (N)</td><td>Shows only the current subtree (<code class="verbatim">org-narrow-to-subtree</code>).</td></tr>
804<tr><td>Narrow to Block (<code class="verbatim">org.narrow.block</code>)</td><td><code class="verbatim">C-x n b</code></td><td>—</td><td>—</td><td>Shows only the current block (<code class="verbatim">org-narrow-to-block</code>).</td></tr>
805<tr><td>Widen (<code class="verbatim">org.widen</code>)</td><td><code class="verbatim">C-x n w</code></td><td>—</td><td><code class="verbatim">SPC m s N</code> (N)</td><td>Shows the whole file again (<code class="verbatim">widen</code>).</td></tr>
806<tr><td>Narrow to Subtree or Widen (<code class="verbatim">org.narrow.toggle</code>)</td><td>—</td><td><code class="verbatim">⌃⌘N</code></td><td>—</td><td>Narrows to the subtree, or widens when already narrowed (<code class="verbatim">org-toggle-narrow-to-subtree</code>).</td></tr>
807<tr><td>Sparse Tree… (<code class="verbatim">org.sparse-tree</code>)</td><td><code class="verbatim">C-c /</code></td><td>—</td><td><code class="verbatim">SPC m s s</code> (N)</td><td>Asks for a match and shows only the matching entries and their context (<code class="verbatim">org-sparse-tree</code>). <code class="verbatim">C-c C-c</code> clears the highlights.</td></tr>
808<tr><td>Show or Hide Inline Images (<code class="verbatim">org.toggle-inline-images</code>)</td><td><code class="verbatim">C-c C-x C-v</code></td><td>—</td><td>—</td><td>Shows or hides image links as images (<code class="verbatim">org-toggle-inline-images</code>).</td></tr>
809</tbody>
810</table>
811<h3 id="outline-headings-and-subtrees">Outline: headings and subtrees</h3>
812<table>
813<thead>
814<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
815</thead>
816<tbody>
817<tr><td>Next Heading (<code class="verbatim">org.heading.next</code>)</td><td><code class="verbatim">C-c C-n</code></td><td><code class="verbatim">⌥⌘↓</code></td><td>—</td><td>Moves to the next heading (<code class="verbatim">org-next-visible-heading</code>).</td></tr>
818<tr><td>Previous Heading (<code class="verbatim">org.heading.previous</code>)</td><td><code class="verbatim">C-c C-p</code></td><td><code class="verbatim">⌥⌘↑</code></td><td>—</td><td>Moves to the previous heading (<code class="verbatim">org-previous-visible-heading</code>).</td></tr>
819<tr><td>Next Heading at Same Level (<code class="verbatim">org.heading.forward-same-level</code>)</td><td><code class="verbatim">C-c C-f</code></td><td><code class="verbatim">⌥⇧⌘↓</code></td><td><code class="verbatim">] h</code> (N)</td><td>Moves to the next heading at the same level (<code class="verbatim">org-forward-heading-same-level</code>).</td></tr>
820<tr><td>Previous Heading at Same Level (<code class="verbatim">org.heading.backward-same-level</code>)</td><td><code class="verbatim">C-c C-b</code></td><td><code class="verbatim">⌥⇧⌘↑</code></td><td><code class="verbatim">[ h</code> (N)</td><td>Moves to the previous heading at the same level (<code class="verbatim">org-backward-heading-same-level</code>).</td></tr>
821<tr><td>Up to Parent Heading (<code class="verbatim">org.heading.up</code>)</td><td><code class="verbatim">C-c C-u</code></td><td>—</td><td><code class="verbatim">g h</code> (N)</td><td>Moves to the parent heading (<code class="verbatim">outline-up-heading</code>).</td></tr>
822<tr><td>Go to Heading… (<code class="verbatim">org.goto</code>)</td><td><code class="verbatim">C-c C-j</code></td><td>—</td><td><code class="verbatim">SPC m .</code> (N)</td><td>Asks for a heading of this file by its outline path and jumps to it (<code class="verbatim">org-goto</code>).</td></tr>
823<tr><td>Insert Heading (<code class="verbatim">org.heading.insert</code>)</td><td><code class="verbatim">M-RET</code></td><td><code class="verbatim">⌘↩</code></td><td>—</td><td>Inserts a heading at the current level; on a list item, see Insert Item (<code class="verbatim">org-meta-return</code>, <code class="verbatim">org-insert-heading</code>).</td></tr>
824<tr><td>Insert Heading After Subtree (<code class="verbatim">org.heading.insert-after-subtree</code>)</td><td><code class="verbatim">C-RET</code></td><td><code class="verbatim">⌃⌘↩</code></td><td>—</td><td>Inserts a heading after the current subtree (<code class="verbatim">org-insert-heading-respect-content</code>).</td></tr>
825<tr><td>Insert TODO Heading (<code class="verbatim">org.heading.insert-todo</code>)</td><td><code class="verbatim">M-S-RET</code></td><td><code class="verbatim">⇧⌘↩</code></td><td>—</td><td>Inserts a heading with the first TODO keyword (<code class="verbatim">org-insert-todo-heading</code>).</td></tr>
826<tr><td>Promote Heading (<code class="verbatim">org.heading.promote</code>)</td><td><code class="verbatim">M-<left></code></td><td><code class="verbatim">⌃⌘←</code></td><td><code class="verbatim">M-h</code>, <code class="verbatim">C-d</code> (I), <code class="verbatim">S-TAB</code> (I)</td><td>On a heading, raises it one level (<code class="verbatim">org-do-promote</code>).</td></tr>
827<tr><td>Demote Heading (<code class="verbatim">org.heading.demote</code>)</td><td><code class="verbatim">M-<right></code></td><td><code class="verbatim">⌃⌘→</code></td><td><code class="verbatim">M-l</code>, <code class="verbatim">C-t</code> (I), <code class="verbatim">TAB</code> (I)</td><td>On a heading, lowers it one level (<code class="verbatim">org-do-demote</code>).</td></tr>
828<tr><td>Promote Subtree (<code class="verbatim">org.subtree.promote</code>)</td><td><code class="verbatim">M-S-<left></code></td><td><code class="verbatim">⌃⌥⌘←</code></td><td><code class="verbatim">M-H</code>, <code class="verbatim">SPC m s h</code> (N)</td><td>On a heading, raises it and its subtree (<code class="verbatim">org-promote-subtree</code>).</td></tr>
829<tr><td>Demote Subtree (<code class="verbatim">org.subtree.demote</code>)</td><td><code class="verbatim">M-S-<right></code></td><td><code class="verbatim">⌃⌥⌘→</code></td><td><code class="verbatim">M-L</code>, <code class="verbatim">SPC m s l</code> (N)</td><td>On a heading, lowers it and its subtree (<code class="verbatim">org-demote-subtree</code>).</td></tr>
830<tr><td>Move Subtree Up (<code class="verbatim">org.subtree.up</code>)</td><td><code class="verbatim">M-<up></code></td><td><code class="verbatim">⌃⌥⌘↑</code></td><td><code class="verbatim">M-k</code>, <code class="verbatim">SPC m s k</code> (N)</td><td>On a heading, swaps the subtree with the one above (<code class="verbatim">org-move-subtree-up</code>).</td></tr>
831<tr><td>Move Subtree Down (<code class="verbatim">org.subtree.down</code>)</td><td><code class="verbatim">M-<down></code></td><td><code class="verbatim">⌃⌥⌘↓</code></td><td><code class="verbatim">M-j</code>, <code class="verbatim">SPC m s j</code> (N)</td><td>On a heading, swaps the subtree with the one below (<code class="verbatim">org-move-subtree-down</code>).</td></tr>
832<tr><td>Mark Subtree (<code class="verbatim">org.subtree.mark</code>)</td><td><code class="verbatim">C-c @</code></td><td>—</td><td>—</td><td>Selects the current subtree (<code class="verbatim">org-mark-subtree</code>).</td></tr>
833<tr><td>Cut Subtree (<code class="verbatim">org.subtree.cut</code>)</td><td><code class="verbatim">C-c C-x C-w</code></td><td>—</td><td><code class="verbatim">SPC m s d</code> (N)</td><td>Cuts the subtree to the clipboard (<code class="verbatim">org-cut-subtree</code>).</td></tr>
834<tr><td>Copy Subtree (<code class="verbatim">org.subtree.copy</code>)</td><td><code class="verbatim">C-c C-x M-w</code></td><td>—</td><td>—</td><td>Copies the subtree to the clipboard (<code class="verbatim">org-copy-subtree</code>).</td></tr>
835<tr><td>Paste Subtree (<code class="verbatim">org.subtree.paste</code>)</td><td><code class="verbatim">C-c C-x C-y</code></td><td>—</td><td>—</td><td>Pastes a subtree from the clipboard, its levels adjusted to fit (<code class="verbatim">org-paste-subtree</code>).</td></tr>
836<tr><td>Clone Subtree with Time Shift (<code class="verbatim">org.subtree.clone</code>)</td><td><code class="verbatim">C-c C-x c</code></td><td>—</td><td><code class="verbatim">SPC m s c</code> (N)</td><td>Asks for a count and a time shift, then inserts shifted copies of the subtree (<code class="verbatim">org-clone-subtree-with-time-shift</code>).</td></tr>
837<tr><td>Sort Entries (<code class="verbatim">org.sort</code>)</td><td><code class="verbatim">C-c ^</code></td><td><code class="verbatim">⌃⇧⌘S</code></td><td><code class="verbatim">SPC m s S</code> (N)</td><td>Sorts by a key you pick: the lines of a table in a table, the list on an item, otherwise the children of the current heading (<code class="verbatim">org-sort</code>).</td></tr>
838<tr><td>Toggle Heading (<code class="verbatim">org.heading.toggle</code>)</td><td><code class="verbatim">C-c *</code></td><td>—</td><td><code class="verbatim">SPC m h</code> (N)</td><td>Outside a table, turns headings into text and lines or items into headings (<code class="verbatim">org-toggle-heading</code>).</td></tr>
839<tr><td>Toggle COMMENT (<code class="verbatim">org.heading.toggle-comment</code>)</td><td><code class="verbatim">C-c ;</code></td><td>—</td><td>—</td><td>Adds or removes the <code class="verbatim">COMMENT</code> keyword (<code class="verbatim">org-toggle-comment</code>).</td></tr>
840<tr><td>Refile… (<code class="verbatim">app.refile</code>)</td><td><code class="verbatim">C-c C-w</code></td><td><code class="verbatim">⌃⌘W</code></td><td><code class="verbatim">SPC m r r</code> (N), <code class="verbatim">SPC m s r</code> (N)</td><td>Asks for a target heading in your folders and moves the subtree there (<code class="verbatim">org-refile</code>).</td></tr>
841<tr><td>Archive Subtree (<code class="verbatim">app.archive</code>)</td><td><code class="verbatim">C-c C-x C-s</code>, <code class="verbatim">C-c $</code></td><td><code class="verbatim">⌃⌘A</code></td><td><code class="verbatim">SPC m A</code> (N), <code class="verbatim">SPC m s A</code> (N)</td><td>Moves the subtree to the archive file (<code class="verbatim">org-archive-subtree</code>).</td></tr>
842<tr><td>Toggle ARCHIVE Tag (<code class="verbatim">org.archive.toggle-tag</code>)</td><td><code class="verbatim">C-c C-x a</code></td><td>—</td><td><code class="verbatim">SPC m s a</code> (N)</td><td>Adds or removes the <code class="verbatim">ARCHIVE</code> tag (<code class="verbatim">org-toggle-archive-tag</code>).</td></tr>
843<tr><td>Archive to Archive Sibling (<code class="verbatim">org.archive.to-sibling</code>)</td><td><code class="verbatim">C-c C-x A</code></td><td>—</td><td>—</td><td>Moves the subtree under an <code class="verbatim">Archive</code> sibling heading (<code class="verbatim">org-archive-to-archive-sibling</code>).</td></tr>
844</tbody>
845</table>
846<h3 id="lists-and-checkboxes">Lists and checkboxes</h3>
847<table>
848<thead>
849<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
850</thead>
851<tbody>
852<tr><td>Insert Item (<code class="verbatim">org.item.insert</code>)</td><td><code class="verbatim">M-RET</code></td><td><code class="verbatim">⌘↩</code></td><td>—</td><td>In a list, inserts a new item (<code class="verbatim">org-insert-item</code>).</td></tr>
853<tr><td>Insert Checkbox Item (<code class="verbatim">org.item.insert-checkbox</code>)</td><td><code class="verbatim">M-S-RET</code></td><td><code class="verbatim">⇧⌘↩</code></td><td>—</td><td>In a list, inserts a new item with a checkbox.</td></tr>
854<tr><td>Indent Item (<code class="verbatim">org.item.indent</code>)</td><td><code class="verbatim">M-<right></code></td><td><code class="verbatim">⌃⌘→</code></td><td><code class="verbatim">M-l</code>, <code class="verbatim">C-t</code> (I)</td><td>In a list, indents the item (<code class="verbatim">org-indent-item</code>).</td></tr>
855<tr><td>Outdent Item (<code class="verbatim">org.item.outdent</code>)</td><td><code class="verbatim">M-<left></code></td><td><code class="verbatim">⌃⌘←</code></td><td><code class="verbatim">M-h</code>, <code class="verbatim">C-d</code> (I)</td><td>In a list, outdents the item (<code class="verbatim">org-outdent-item</code>).</td></tr>
856<tr><td>Indent Item and Children (<code class="verbatim">org.item.indent-tree</code>)</td><td><code class="verbatim">M-S-<right></code></td><td><code class="verbatim">⌃⌥⌘→</code></td><td><code class="verbatim">M-L</code>, <code class="verbatim">TAB</code> (I)</td><td>In a list, indents the item and its children (<code class="verbatim">org-indent-item-tree</code>).</td></tr>
857<tr><td>Outdent Item and Children (<code class="verbatim">org.item.outdent-tree</code>)</td><td><code class="verbatim">M-S-<left></code></td><td><code class="verbatim">⌃⌥⌘←</code></td><td><code class="verbatim">M-H</code>, <code class="verbatim">S-TAB</code> (I)</td><td>In a list, outdents the item and its children (<code class="verbatim">org-outdent-item-tree</code>).</td></tr>
858<tr><td>Move Item Up (<code class="verbatim">org.item.up</code>)</td><td><code class="verbatim">M-<up></code></td><td><code class="verbatim">⌃⌥⌘↑</code></td><td><code class="verbatim">M-k</code></td><td>In a list, swaps the item with the one above (<code class="verbatim">org-move-item-up</code>).</td></tr>
859<tr><td>Move Item Down (<code class="verbatim">org.item.down</code>)</td><td><code class="verbatim">M-<down></code></td><td><code class="verbatim">⌃⌥⌘↓</code></td><td><code class="verbatim">M-j</code></td><td>In a list, swaps the item with the one below (<code class="verbatim">org-move-item-down</code>).</td></tr>
860<tr><td>Toggle Checkbox (<code class="verbatim">org.checkbox.toggle</code>)</td><td><code class="verbatim">C-c C-x C-b</code></td><td><code class="verbatim">⌃⌘C</code></td><td><code class="verbatim">SPC m x</code> (N)</td><td>Checks or unchecks the item's checkbox (<code class="verbatim">org-toggle-checkbox</code>).</td></tr>
861<tr><td>Toggle Item (<code class="verbatim">org.item.toggle</code>)</td><td><code class="verbatim">C-c -</code></td><td>—</td><td><code class="verbatim">SPC m i</code> (N)</td><td>Outside a table: on an item, cycles the list's bullet style; elsewhere turns lines into items and items into text (<code class="verbatim">org-ctrl-c-minus</code>).</td></tr>
862</tbody>
863</table>
864<h3 id="todo-priority-and-tags">TODO, priority and tags</h3>
865<table>
866<thead>
867<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
868</thead>
869<tbody>
870<tr><td>Cycle TODO State (<code class="verbatim">org.todo.cycle</code>)</td><td><code class="verbatim">C-c C-t</code></td><td><code class="verbatim">⌃⌘T</code></td><td><code class="verbatim">SPC m t</code> (N)</td><td>Cycles the TODO keyword; with fast-selection keys in <code class="verbatim">#+TODO</code>, asks for one (<code class="verbatim">org-todo</code>).</td></tr>
871<tr><td>Next TODO Keyword (<code class="verbatim">org.todo.next</code>)</td><td><code class="verbatim">S-<right></code></td><td><code class="verbatim">⌃⇧⌘→</code></td><td><code class="verbatim">C-S-l</code> (N, I)</td><td>On a heading, sets the next keyword across all sequences (<code class="verbatim">org-shiftright</code>).</td></tr>
872<tr><td>Previous TODO Keyword (<code class="verbatim">org.todo.previous</code>)</td><td><code class="verbatim">S-<left></code></td><td><code class="verbatim">⌃⇧⌘←</code></td><td><code class="verbatim">C-S-h</code> (N, I)</td><td>On a heading, sets the previous keyword (<code class="verbatim">org-shiftleft</code>).</td></tr>
873<tr><td>Raise Priority (<code class="verbatim">org.priority.up</code>)</td><td><code class="verbatim">S-<up></code></td><td><code class="verbatim">⌃⌘↑</code></td><td><code class="verbatim">C-S-k</code> (N, I), <code class="verbatim">SPC m p u</code> (N)</td><td>On a heading, raises the priority (<code class="verbatim">org-priority-up</code>).</td></tr>
874<tr><td>Lower Priority (<code class="verbatim">org.priority.down</code>)</td><td><code class="verbatim">S-<down></code></td><td><code class="verbatim">⌃⌘↓</code></td><td><code class="verbatim">C-S-j</code> (N, I), <code class="verbatim">SPC m p d</code> (N)</td><td>On a heading, lowers the priority (<code class="verbatim">org-priority-down</code>).</td></tr>
875<tr><td>Set Priority… (<code class="verbatim">org.priority.set</code>)</td><td><code class="verbatim">C-c ,</code></td><td><code class="verbatim">⌃⌘,</code></td><td><code class="verbatim">SPC m p p</code> (N)</td><td>Asks for a priority; <code class="verbatim">SPC</code> removes it (<code class="verbatim">org-priority</code>).</td></tr>
876<tr><td>Set Priority A (<code class="verbatim">org.priority.set-a</code>)</td><td>—</td><td>—</td><td>—</td><td>Sets priority A. Bound only as a speed key.</td></tr>
877<tr><td>Set Priority B (<code class="verbatim">org.priority.set-b</code>)</td><td>—</td><td>—</td><td>—</td><td>Sets priority B. Bound only as a speed key.</td></tr>
878<tr><td>Set Priority C (<code class="verbatim">org.priority.set-c</code>)</td><td>—</td><td>—</td><td>—</td><td>Sets priority C. Bound only as a speed key.</td></tr>
879<tr><td>Remove Priority (<code class="verbatim">org.priority.remove</code>)</td><td>—</td><td>—</td><td>—</td><td>Removes the priority. Bound only as a speed key.</td></tr>
880<tr><td>Set Tags (<code class="verbatim">org.tags.set</code>)</td><td><code class="verbatim">C-c C-q</code></td><td><code class="verbatim">⌃⌘G</code></td><td><code class="verbatim">SPC m q</code> (N)</td><td>Sets the heading's tags, with fast selection when <code class="verbatim">#+TAGS</code> has keys (<code class="verbatim">org-set-tags-command</code>).</td></tr>
881</tbody>
882</table>
883<h3 id="properties-and-column-view">Properties and column view</h3>
884<table>
885<thead>
886<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
887</thead>
888<tbody>
889<tr><td>Set Property… (<code class="verbatim">org.property.read-and-set</code>)</td><td><code class="verbatim">C-c C-x p</code></td><td><code class="verbatim">⌃⇧⌘P</code></td><td><code class="verbatim">SPC m o</code> (N)</td><td>Asks for a property and a value and sets it (<code class="verbatim">org-set-property</code>).</td></tr>
890<tr><td>Next Allowed Value (<code class="verbatim">org.property.next-value</code>)</td><td><code class="verbatim">S-<right></code></td><td><code class="verbatim">⌃⇧⌘→</code></td><td><code class="verbatim">C-S-l</code> (N, I)</td><td>On a property line, sets the next allowed value (<code class="verbatim">org-property-next-allowed-value</code>).</td></tr>
891<tr><td>Previous Allowed Value (<code class="verbatim">org.property.previous-value</code>)</td><td><code class="verbatim">S-<left></code></td><td><code class="verbatim">⌃⇧⌘←</code></td><td><code class="verbatim">C-S-h</code> (N, I)</td><td>On a property line, sets the previous allowed value (<code class="verbatim">org-property-previous-allowed-value</code>).</td></tr>
892<tr><td>Set Effort (<code class="verbatim">org.effort.set</code>)</td><td><code class="verbatim">C-c C-x e</code></td><td><code class="verbatim">⌃⇧⌘E</code></td><td><code class="verbatim">SPC m c E</code> (N)</td><td>Sets the <code class="verbatim">Effort</code> property, offering <code class="verbatim">Effort_ALL</code> values (<code class="verbatim">org-set-effort</code>).</td></tr>
893<tr><td>Column View (<code class="verbatim">org.columns</code>)</td><td><code class="verbatim">C-c C-x C-c</code></td><td>—</td><td>—</td><td>Shows the column view of the entries, read-only (<code class="verbatim">org-columns</code>).</td></tr>
894<tr><td>Insert Column View Table (<code class="verbatim">org.columns.insert-dblock</code>)</td><td><code class="verbatim">C-c C-x i</code></td><td>—</td><td>—</td><td>Inserts a <code class="verbatim">columnview</code> dynamic block (<code class="verbatim">org-columns-insert-dblock</code>).</td></tr>
895<tr><td>Update Dynamic Block (<code class="verbatim">org.dblock.update</code>)</td><td><code class="verbatim">C-c C-x C-u</code>, <code class="verbatim">C-c C-c</code></td><td><code class="verbatim">⌃⌘X</code></td><td>—</td><td>Updates the dynamic block at point, such as a clock table; <code class="verbatim">C-c C-c</code> and <code class="verbatim">⌃⌘X</code> do it on the block's <code class="verbatim">#+BEGIN</code> line (<code class="verbatim">org-update-dblock</code>).</td></tr>
896</tbody>
897</table>
898<h3 id="dates-and-clocking">Dates and clocking</h3>
899<table>
900<thead>
901<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
902</thead>
903<tbody>
904<tr><td>Insert Timestamp (<code class="verbatim">org.timestamp.active</code>)</td><td><code class="verbatim">C-c .</code></td><td><code class="verbatim">⌃⌘.</code></td><td><code class="verbatim">SPC m d t</code> (N)</td><td>Asks for a date and inserts an active timestamp, or changes the one at point (<code class="verbatim">org-timestamp</code>).</td></tr>
905<tr><td>Insert Inactive Timestamp (<code class="verbatim">org.timestamp.inactive</code>)</td><td><code class="verbatim">C-c !</code></td><td><code class="verbatim">⌃⌥⌘.</code></td><td><code class="verbatim">SPC m d T</code> (N)</td><td>Same, inactive (<code class="verbatim">org-timestamp-inactive</code>).</td></tr>
906<tr><td>Schedule (<code class="verbatim">org.schedule</code>)</td><td><code class="verbatim">C-c C-s</code></td><td><code class="verbatim">⌃⌘S</code></td><td><code class="verbatim">SPC m d s</code> (N)</td><td>Asks for a date and sets <code class="verbatim">SCHEDULED</code> (<code class="verbatim">org-schedule</code>).</td></tr>
907<tr><td>Set Deadline (<code class="verbatim">org.deadline</code>)</td><td><code class="verbatim">C-c C-d</code></td><td><code class="verbatim">⌃⌘E</code></td><td><code class="verbatim">SPC m d d</code> (N)</td><td>Asks for a date and sets <code class="verbatim">DEADLINE</code> (<code class="verbatim">org-deadline</code>).</td></tr>
908<tr><td>Increase Timestamp Part (<code class="verbatim">org.timestamp.up</code>)</td><td><code class="verbatim">S-<up></code></td><td><code class="verbatim">⌃⌘↑</code></td><td><code class="verbatim">C-S-k</code> (N, I)</td><td>On a timestamp, increases the part under the caret: year, month, day, hour or minute (<code class="verbatim">org-timestamp-up</code>).</td></tr>
909<tr><td>Decrease Timestamp Part (<code class="verbatim">org.timestamp.down</code>)</td><td><code class="verbatim">S-<down></code></td><td><code class="verbatim">⌃⌘↓</code></td><td><code class="verbatim">C-S-j</code> (N, I)</td><td>On a timestamp, decreases the part under the caret (<code class="verbatim">org-timestamp-down</code>).</td></tr>
910<tr><td>Timestamp One Day Later (<code class="verbatim">org.timestamp.day-later</code>)</td><td><code class="verbatim">S-<right></code></td><td><code class="verbatim">⌃⌘→</code></td><td><code class="verbatim">C-S-l</code> (N, I)</td><td>On a timestamp, moves it one day later (<code class="verbatim">org-timestamp-up-day</code>).</td></tr>
911<tr><td>Timestamp One Day Earlier (<code class="verbatim">org.timestamp.day-earlier</code>)</td><td><code class="verbatim">S-<left></code></td><td><code class="verbatim">⌃⌘←</code></td><td><code class="verbatim">C-S-h</code> (N, I)</td><td>On a timestamp, moves it one day earlier (<code class="verbatim">org-timestamp-down-day</code>).</td></tr>
912<tr><td>Evaluate Time Range (<code class="verbatim">org.timestamp.evaluate-range</code>)</td><td><code class="verbatim">C-c C-y</code></td><td>—</td><td>—</td><td>Shows how long the time range lasts, or updates a clock line (<code class="verbatim">org-evaluate-time-range</code>).</td></tr>
913<tr><td>Clock In (<code class="verbatim">app.clock.in</code>)</td><td><code class="verbatim">C-c C-x C-i</code></td><td><code class="verbatim">⌃⌘I</code></td><td><code class="verbatim">SPC m c i</code> (N)</td><td>Starts the clock on the current entry (<code class="verbatim">org-clock-in</code>).</td></tr>
914<tr><td>Clock In to Recent Entry… (<code class="verbatim">app.clock.in-recent</code>)</td><td>—</td><td><code class="verbatim">⌃⌥⌘I</code></td><td>—</td><td>Asks for an entry from the clock history and clocks in to it (<code class="verbatim">org-clock-in</code> with <code class="verbatim">C-u</code>).</td></tr>
915<tr><td>Clock In to Last Entry (<code class="verbatim">app.clock.in-last</code>)</td><td><code class="verbatim">C-c C-x C-x</code></td><td>—</td><td><code class="verbatim">SPC m c I</code> (N)</td><td>Clocks in to the most recently clocked entry (<code class="verbatim">org-clock-in-last</code>).</td></tr>
916<tr><td>Clock Out (<code class="verbatim">app.clock.out</code>)</td><td><code class="verbatim">C-c C-x C-o</code></td><td><code class="verbatim">⌃⇧⌘I</code></td><td><code class="verbatim">SPC m c o</code> (N)</td><td>Stops the clock (<code class="verbatim">org-clock-out</code>).</td></tr>
917<tr><td>Cancel Clock (<code class="verbatim">app.clock.cancel</code>)</td><td><code class="verbatim">C-c C-x C-q</code></td><td>—</td><td><code class="verbatim">SPC m c c</code> (N)</td><td>Stops the clock and removes the running clock line (<code class="verbatim">org-clock-cancel</code>).</td></tr>
918<tr><td>Go to Clocked Entry (<code class="verbatim">app.clock.goto</code>)</td><td><code class="verbatim">C-c C-x C-j</code></td><td><code class="verbatim">⌃⌘J</code></td><td><code class="verbatim">SPC m c g</code> (N)</td><td>Opens the entry the clock is running on, or the most recently clocked one (<code class="verbatim">org-clock-goto</code>).</td></tr>
919<tr><td>Go to Recent Clocked Entry… (<code class="verbatim">app.clock.goto-recent</code>)</td><td>—</td><td><code class="verbatim">⌃⌥⌘J</code></td><td><code class="verbatim">SPC m c G</code> (N)</td><td>Asks for an entry from the clock history and opens it (<code class="verbatim">org-clock-goto</code> with <code class="verbatim">C-u</code>).</td></tr>
920<tr><td>Mark as Default Clock Task (<code class="verbatim">app.clock.default</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC m c d</code> (N)</td><td>Makes the current entry the default task, <code class="verbatim">d</code> in the clock selection (<code class="verbatim">org-clock-mark-default-task</code>).</td></tr>
921<tr><td>Resolve Open Clocks… (<code class="verbatim">app.clock.resolve</code>)</td><td><code class="verbatim">C-c C-x C-z</code></td><td>—</td><td><code class="verbatim">SPC m c r</code> (N)</td><td>Asks what to do with each open <code class="verbatim">CLOCK:</code> line in your folders (<code class="verbatim">org-resolve-clocks</code>).</td></tr>
922<tr><td>Clock Report (<code class="verbatim">app.clock.report</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC z t</code> (N), <code class="verbatim">SPC m c R</code> (N)</td><td>Opens the Clock Report window.</td></tr>
923<tr><td>Insert or Update Clock Table (<code class="verbatim">org.clock.report</code>)</td><td><code class="verbatim">C-c C-x C-r</code></td><td>—</td><td>—</td><td>Inserts a clock table, or updates the one at point (<code class="verbatim">org-clock-report</code>).</td></tr>
924</tbody>
925</table>
926<h3 id="tables">Tables</h3>
927<table>
928<thead>
929<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
930</thead>
931<tbody>
932<tr><td>Create Table (<code class="verbatim">org.table.create</code>)</td><td><code class="verbatim">C-c</code> |</td><td><code class="verbatim">⌃⌘\</code></td><td>—</td><td>Asks for a size and inserts an empty table (<code class="verbatim">org-table-create</code>).</td></tr>
933<tr><td>Next Table Field (<code class="verbatim">org.table.next-field</code>)</td><td><code class="verbatim">TAB</code></td><td><code class="verbatim">⇥</code></td><td><code class="verbatim">TAB</code> (I)</td><td>In a table, aligns it and moves to the next field, adding a row at the end (<code class="verbatim">org-table-next-field</code>).</td></tr>
934<tr><td>Previous Table Field (<code class="verbatim">org.table.previous-field</code>)</td><td><code class="verbatim">S-TAB</code></td><td><code class="verbatim">⇧⇥</code></td><td><code class="verbatim">S-TAB</code> (I)</td><td>In a table, moves to the previous field (<code class="verbatim">org-table-previous-field</code>).</td></tr>
935<tr><td>Next Table Row (<code class="verbatim">org.table.next-row</code>)</td><td><code class="verbatim">RET</code></td><td><code class="verbatim">↩</code></td><td><code class="verbatim">RET</code> (I)</td><td>In a table, moves to the same field in the next row, adding a row at the end (<code class="verbatim">org-table-next-row</code>).</td></tr>
936<tr><td>Align Table (<code class="verbatim">org.table.align</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC m b a</code> (N)</td><td>In a table, aligns it (<code class="verbatim">org-table-align</code>). <code class="verbatim">C-c C-c</code> in a table also aligns it; see Act at Point.</td></tr>
937<tr><td>Move Table Row Up (<code class="verbatim">org.table.row-up</code>)</td><td><code class="verbatim">M-<up></code></td><td><code class="verbatim">⌃⌘↑</code></td><td><code class="verbatim">M-k</code></td><td>In a table, moves the row up (<code class="verbatim">org-table-move-row-up</code>).</td></tr>
938<tr><td>Move Table Row Down (<code class="verbatim">org.table.row-down</code>)</td><td><code class="verbatim">M-<down></code></td><td><code class="verbatim">⌃⌘↓</code></td><td><code class="verbatim">M-j</code></td><td>In a table, moves the row down (<code class="verbatim">org-table-move-row-down</code>).</td></tr>
939<tr><td>Move Table Column Left (<code class="verbatim">org.table.column-left</code>)</td><td><code class="verbatim">M-<left></code></td><td><code class="verbatim">⌃⌘←</code></td><td><code class="verbatim">M-h</code>, <code class="verbatim">C-d</code> (I)</td><td>In a table, moves the column left (<code class="verbatim">org-table-move-column-left</code>).</td></tr>
940<tr><td>Move Table Column Right (<code class="verbatim">org.table.column-right</code>)</td><td><code class="verbatim">M-<right></code></td><td><code class="verbatim">⌃⌘→</code></td><td><code class="verbatim">M-l</code>, <code class="verbatim">C-t</code> (I)</td><td>In a table, moves the column right (<code class="verbatim">org-table-move-column-right</code>).</td></tr>
941<tr><td>Insert Table Column (<code class="verbatim">org.table.insert-column</code>)</td><td><code class="verbatim">M-S-<right></code></td><td><code class="verbatim">⌃⌥⌘→</code></td><td><code class="verbatim">M-L</code>, <code class="verbatim">SPC m b i c</code> (N)</td><td>In a table, inserts a column (<code class="verbatim">org-table-insert-column</code>).</td></tr>
942<tr><td>Delete Table Column (<code class="verbatim">org.table.delete-column</code>)</td><td><code class="verbatim">M-S-<left></code></td><td><code class="verbatim">⌃⌥⌘←</code></td><td><code class="verbatim">M-H</code>, <code class="verbatim">SPC m b d c</code> (N)</td><td>In a table, deletes the column (<code class="verbatim">org-table-delete-column</code>).</td></tr>
943<tr><td>Insert Table Row (<code class="verbatim">org.table.insert-row</code>)</td><td><code class="verbatim">M-S-<down></code></td><td><code class="verbatim">⌃⌥⌘↓</code></td><td><code class="verbatim">M-J</code>, <code class="verbatim">SPC m b i r</code> (N)</td><td>In a table, inserts a row (<code class="verbatim">org-table-insert-row</code>).</td></tr>
944<tr><td>Delete Table Row (<code class="verbatim">org.table.kill-row</code>)</td><td><code class="verbatim">M-S-<up></code></td><td><code class="verbatim">⌃⌥⌘↑</code></td><td><code class="verbatim">M-K</code>, <code class="verbatim">SPC m b d r</code> (N)</td><td>In a table, deletes the row (<code class="verbatim">org-table-kill-row</code>).</td></tr>
945<tr><td>Insert Table Rule (<code class="verbatim">org.table.insert-hline</code>)</td><td><code class="verbatim">C-c -</code></td><td><code class="verbatim">⌃⌘-</code></td><td><code class="verbatim">SPC m b -</code> (N), <code class="verbatim">SPC m b i h</code> (N)</td><td>In a table, inserts a horizontal rule (<code class="verbatim">org-table-insert-hline</code>).</td></tr>
946<tr><td>Recalculate Table Row (<code class="verbatim">org.table.recalc</code>)</td><td><code class="verbatim">C-c *</code></td><td>—</td><td>—</td><td>In a table, recalculates the current row (<code class="verbatim">org-table-recalculate</code>).</td></tr>
947<tr><td>Recalculate Table (<code class="verbatim">org.table.recalc-all</code>)</td><td><code class="verbatim">C-c C-c</code></td><td><code class="verbatim">⌃⌘X</code></td><td><code class="verbatim">SPC m b r</code> (N)</td><td>Recalculates the whole table; <code class="verbatim">C-c C-c</code> and <code class="verbatim">⌃⌘X</code> run it on a <code class="verbatim">#+TBLFM</code> line (<code class="verbatim">org-table-recalculate</code> with <code class="verbatim">C-u</code>).</td></tr>
948<tr><td>Set Column Formula (<code class="verbatim">org.table.column-formula</code>)</td><td><code>C-c =</code></td><td>—</td><td>—</td><td>Asks for the column's formula, offering the stored one (<code class="verbatim">org-table-eval-formula</code>).</td></tr>
949<tr><td>Edit Table Field (<code class="verbatim">org.table.edit-field</code>)</td><td><code class="verbatim">C-c `</code></td><td>—</td><td>—</td><td>In a table, edits the field in a separate editor (<code class="verbatim">org-table-edit-field</code>).</td></tr>
950<tr><td>Shrink or Expand Table Column (<code class="verbatim">org.table.toggle-column-width</code>)</td><td><code class="verbatim">C-c TAB</code></td><td>—</td><td>—</td><td>In a table, shrinks or expands the column (<code class="verbatim">org-table-toggle-column-width</code>).</td></tr>
951</tbody>
952</table>
953<h3 id="links-and-footnotes">Links and footnotes</h3>
954<table>
955<thead>
956<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
957</thead>
958<tbody>
959<tr><td>Open Link (<code class="verbatim">org.link.open</code>)</td><td><code class="verbatim">C-c C-o</code></td><td><code class="verbatim">⌃⌘O</code></td><td>—</td><td>Follows the link or timestamp at the caret (<code class="verbatim">org-open-at-point</code>).</td></tr>
960<tr><td>Insert Link… (<code class="verbatim">org.link.insert</code>)</td><td><code class="verbatim">C-c C-l</code></td><td><code class="verbatim">⌘K</code></td><td><code class="verbatim">SPC m l l</code> (N)</td><td>Asks for a link and description and inserts it, offering stored links (<code class="verbatim">org-insert-link</code>).</td></tr>
961<tr><td>Store Link (<code class="verbatim">org.link.store</code>)</td><td><code class="verbatim">C-c l</code></td><td><code class="verbatim">⌃⌘L</code></td><td><code class="verbatim">SPC m l s</code> (N), <code class="verbatim">SPC n l</code> (N)</td><td>Stores a link to the current entry for a later Insert Link (<code class="verbatim">org-store-link</code>).</td></tr>
962<tr><td>Store ID Link (<code class="verbatim">org.id.store-link</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC m l i</code> (N)</td><td>Gives the entry an <code class="verbatim">ID</code> if needed and stores an <code class="verbatim">id:</code> link to it (<code class="verbatim">org-id-store-link</code>).</td></tr>
963<tr><td>Footnote Action (<code class="verbatim">org.footnote.action</code>)</td><td><code class="verbatim">C-c C-x f</code></td><td><code class="verbatim">⌃⇧⌘F</code></td><td>—</td><td>On a reference, goes to its definition; on a definition, back to a reference; elsewhere inserts a footnote (<code class="verbatim">org-footnote-action</code>).</td></tr>
964</tbody>
965</table>
966<h3 id="code-blocks-and-c-c-c-c">Code blocks and C-c C-c</h3>
967<table>
968<thead>
969<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
970</thead>
971<tbody>
972<tr><td>Act at Point (C-c C-c) (<code class="verbatim">org.ctrl-c-ctrl-c</code>)</td><td><code class="verbatim">C-c C-c</code></td><td><code class="verbatim">⌃⌘X</code></td><td>—</td><td>Does what fits the context: sets tags on a heading, toggles an item's checkbox, follows a footnote, offers the property menu in a property drawer, updates a clock line, statistics cookie or timestamp, runs a <code class="verbatim">#+CALL:</code> line, inline <code class="verbatim">call_</code> or inline <code class="verbatim">src_</code> block, and refreshes the setup on a <code class="verbatim">#+</code> keyword line (<code class="verbatim">org-ctrl-c-ctrl-c</code>). In a table it evaluates a formula typed in the field (starting with <code>=</code> or <code>:=</code>), then recalculates the row when it is marked <code class="verbatim">#</code> and otherwise aligns the table; at the table's first character it recalculates the whole table. After a sparse tree, the first <code class="verbatim">C-c C-c</code> only clears the highlights. More specific bindings take <code class="verbatim">C-c C-c</code> and <code class="verbatim">⌃⌘X</code> in src blocks, <code class="verbatim">#+TBLFM</code> lines and dynamic blocks.</td></tr>
973<tr><td>Act at Point (<code class="verbatim">org.dwim</code>)</td><td>—</td><td>—</td><td><code class="verbatim">RET</code> (N)</td><td>Doom's <code class="verbatim">+org/dwim-at-point</code>: follows a link, runs a src block, recalculates or aligns a table, toggles a checkbox, or switches a heading between TODO and done.</td></tr>
974<tr><td>Run Source Block (<code class="verbatim">org.babel.execute</code>)</td><td><code class="verbatim">C-c C-c</code></td><td><code class="verbatim">⌃⌘X</code></td><td>—</td><td>In a src block, runs it and inserts the results (<code class="verbatim">org-babel-execute-src-block</code>).</td></tr>
975<tr><td>Tangle File (<code class="verbatim">org.babel.tangle</code>)</td><td><code class="verbatim">C-c C-v t</code>, <code class="verbatim">C-c C-v C-t</code></td><td><code class="verbatim">⌃⌘V</code></td><td>—</td><td>Writes the file's src blocks to their tangle targets (<code class="verbatim">org-babel-tangle</code>).</td></tr>
976<tr><td>Insert Structure Template (<code class="verbatim">org.structure-template</code>)</td><td><code class="verbatim">C-c C-,</code></td><td>—</td><td>—</td><td>Asks for a block type and inserts the block, or wraps the selection (<code class="verbatim">org-insert-structure-template</code>).</td></tr>
977<tr><td>Edit Block (<code class="verbatim">org.edit-special</code>)</td><td><code class="verbatim">C-c '</code></td><td><code class="verbatim">⌃⌘'</code></td><td><code class="verbatim">SPC m '</code> (N)</td><td>Edits the src, example or export block at point in a separate editor (<code class="verbatim">org-edit-special</code>).</td></tr>
978</tbody>
979</table>
980<h3 id="agenda-and-capture">Agenda and capture</h3>
981<table>
982<thead>
983<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
984</thead>
985<tbody>
986<tr><td>Agenda (<code class="verbatim">app.agenda</code>)</td><td><code class="verbatim">C-c a</code></td><td>—</td><td><code class="verbatim">SPC o a</code> (N)</td><td>Opens the Agenda window (<code class="verbatim">org-agenda</code>).</td></tr>
987<tr><td>Capture… (<code class="verbatim">app.capture</code>)</td><td><code class="verbatim">C-c c</code></td><td>—</td><td><code class="verbatim">SPC X</code> (N)</td><td>Opens the Capture window (<code class="verbatim">org-capture</code>).</td></tr>
988</tbody>
989</table>
990<h3 id="export">Export</h3>
991<table>
992<thead>
993<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
994</thead>
995<tbody>
996<tr><td>Export… (<code class="verbatim">app.export-dialog</code>)</td><td>—</td><td><code class="verbatim">⇧⌘E</code></td><td>—</td><td>Opens the export sheet. In the Emacs and Doom presets <code class="verbatim">C-c C-e</code> is a prefix for the export keys only; pausing after it lists them in the key hints.</td></tr>
997<tr><td>Export to HTML (<code class="verbatim">app.export.html</code>)</td><td><code class="verbatim">C-c C-e h h</code></td><td>—</td><td><code class="verbatim">SPC m e h h</code> (N)</td><td>Exports to HTML (<code class="verbatim">org-html-export-to-html</code>).</td></tr>
998<tr><td>Export to HTML and Open (<code class="verbatim">app.export.html-open</code>)</td><td><code class="verbatim">C-c C-e h o</code></td><td>—</td><td><code class="verbatim">SPC m e h o</code> (N)</td><td>Exports to HTML and opens the result.</td></tr>
999<tr><td>Export to Markdown (<code class="verbatim">app.export.markdown</code>)</td><td><code class="verbatim">C-c C-e m m</code></td><td>—</td><td><code class="verbatim">SPC m e m m</code> (N)</td><td>Exports to Markdown (<code class="verbatim">org-md-export-to-markdown</code>).</td></tr>
1000<tr><td>Export to PDF with Emacs (<code class="verbatim">app.export.pdf</code>)</td><td><code class="verbatim">C-c C-e l p</code></td><td>—</td><td><code class="verbatim">SPC m e l p</code> (N)</td><td>Exports to PDF through Emacs (<code class="verbatim">org-latex-export-to-pdf</code>).</td></tr>
1001<tr><td>Export to LaTeX with Emacs (<code class="verbatim">app.export.latex</code>)</td><td><code class="verbatim">C-c C-e l l</code></td><td>—</td><td>—</td><td>Exports to LaTeX through Emacs (<code class="verbatim">org-latex-export-to-latex</code>).</td></tr>
1002<tr><td>Export to ODT with Emacs (<code class="verbatim">app.export.odt</code>)</td><td><code class="verbatim">C-c C-e o o</code></td><td>—</td><td>—</td><td>Exports to ODT through Emacs (<code class="verbatim">org-odt-export-to-odt</code>).</td></tr>
1003<tr><td>Export to Plain Text with Emacs (<code class="verbatim">app.export.text</code>)</td><td><code class="verbatim">C-c C-e t u</code></td><td>—</td><td>—</td><td>Exports to plain text through Emacs (<code class="verbatim">org-ascii-export-to-ascii</code>).</td></tr>
1004</tbody>
1005</table>
1006<h3 id="files-buffers-and-the-app">Files, buffers and the app</h3>
1007<table>
1008<thead>
1009<tr><th>Command</th><th>Emacs</th><th>Mac</th><th>Doom</th><th>What it does</th></tr>
1010</thead>
1011<tbody>
1012<tr><td>Save (<code class="verbatim">app.save</code>)</td><td><code class="verbatim">C-x C-s</code></td><td>—</td><td><code class="verbatim">SPC f s</code> (N), <code class="verbatim">SPC b s</code> (N)</td><td>Saves the file (<code class="verbatim">save-buffer</code>).</td></tr>
1013<tr><td>Save All Buffers (<code class="verbatim">app.save-all</code>)</td><td><code class="verbatim">C-x s</code></td><td>—</td><td><code class="verbatim">SPC b S</code> (N)</td><td>Saves every open buffer (<code class="verbatim">save-some-buffers</code>).</td></tr>
1014<tr><td>Quick Open… (<code class="verbatim">app.quick-open</code>)</td><td><code class="verbatim">C-x C-f</code></td><td>—</td><td><code class="verbatim">SPC SPC</code> (N), <code class="verbatim">SPC .</code> (N), <code class="verbatim">SPC f f</code> (N)</td><td>Opens a file of your folders by name (<code class="verbatim">find-file</code>).</td></tr>
1015<tr><td>Switch to Buffer… (<code class="verbatim">app.buffer.switch</code>)</td><td><code class="verbatim">C-x b</code>, <code class="verbatim">C-x C-b</code></td><td>—</td><td><code class="verbatim">SPC b b</code> (N), <code class="verbatim">SPC b B</code> (N), <code class="verbatim">SPC ,</code> (N)</td><td>Asks for an open buffer and shows it (<code class="verbatim">switch-to-buffer</code>).</td></tr>
1016<tr><td>Next Buffer (<code class="verbatim">app.buffer.next</code>)</td><td><code class="verbatim">C-x <right></code></td><td><code class="verbatim">⌃⇥</code></td><td><code class="verbatim">SPC b n</code> (N), <code class="verbatim">SPC b ]</code> (N), <code class="verbatim">] b</code> (N)</td><td>Shows the next open buffer (<code class="verbatim">next-buffer</code>).</td></tr>
1017<tr><td>Previous Buffer (<code class="verbatim">app.buffer.previous</code>)</td><td><code class="verbatim">C-x <left></code></td><td><code class="verbatim">⌃⇧⇥</code></td><td><code class="verbatim">SPC b p</code> (N), <code class="verbatim">SPC b [</code> (N), <code class="verbatim">[ b</code> (N)</td><td>Shows the previous open buffer (<code class="verbatim">previous-buffer</code>).</td></tr>
1018<tr><td>Last Buffer (<code class="verbatim">app.buffer.last</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC `</code> (N)</td><td>Shows the buffer you were in before this one.</td></tr>
1019<tr><td>Close Buffer (<code class="verbatim">app.buffer.kill</code>)</td><td><code class="verbatim">C-x k</code></td><td>—</td><td><code class="verbatim">SPC b k</code> (N), <code class="verbatim">SPC b d</code> (N)</td><td>Closes the buffer, asking about unsaved changes in explicit save mode (<code class="verbatim">kill-buffer</code>).</td></tr>
1020<tr><td>Close Other Buffers (<code class="verbatim">app.buffer.kill-others</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC b O</code> (N)</td><td>Closes every other buffer.</td></tr>
1021<tr><td>Close All Buffers (<code class="verbatim">app.buffer.kill-all</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC b K</code> (N)</td><td>Closes every buffer.</td></tr>
1022<tr><td>Command Palette… (<code class="verbatim">app.palette</code>)</td><td><code class="verbatim">M-x</code></td><td>—</td><td><code class="verbatim">SPC :</code> (N)</td><td>Opens the command palette (<code class="verbatim">execute-extended-command</code>).</td></tr>
1023<tr><td>Search Notes (<code class="verbatim">app.search</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC /</code> (N), <code class="verbatim">SPC s p</code> (N)</td><td>Moves to the search field for searching your notes.</td></tr>
1024<tr><td>Reload Keymap (<code class="verbatim">app.reload-keymap</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC h r r</code> (N)</td><td>Reads <code class="verbatim">keymap.toml</code> again.</td></tr>
1025<tr><td>Check Spelling While Typing (<code class="verbatim">editor.toggle-spell-check</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC t s</code> (N)</td><td>Turns spell checking while typing on or off.</td></tr>
1026<tr><td>Truncate or Wrap Long Lines (<code class="verbatim">editor.toggle-truncate-lines</code>)</td><td><code class="verbatim">C-x x t</code></td><td>—</td><td><code class="verbatim">SPC t w</code> (N)</td><td>Switches between wrapping and truncating long lines (<code class="verbatim">toggle-truncate-lines</code>).</td></tr>
1027<tr><td>Quit Orgstar (<code class="verbatim">app.quit</code>)</td><td>—</td><td>—</td><td><code class="verbatim">SPC q q</code> (N)</td><td>Quits Orgstar (<code class="verbatim">save-buffers-kill-terminal</code>).</td></tr>
1028</tbody>
1029</table>
1030<h3 id="unbound-commands">Unbound commands</h3>
1031<p>No preset binds these. Run them from the palette or a menu, or bind them in <code class="verbatim">keymap.toml</code>.</p>
1032<table>
1033<thead>
1034<tr><th>Command</th><th>What it does</th></tr>
1035</thead>
1036<tbody>
1037<tr><td>Board (<code class="verbatim">app.board</code>)</td><td>Opens the Board window. Window ▸ Board, <code class="verbatim">⇧⌘B</code>.</td></tr>
1038<tr><td>Cancel Running Task (<code class="verbatim">app.babel.cancel</code>)</td><td>Stops the src block that is running, or an export or table recalculation running in Emacs. Edit ▸ Cancel Running Task, <code class="verbatim">⌘.</code>.</td></tr>
1039<tr><td>Edit Config File (<code class="verbatim">app.edit-config</code>)</td><td>Opens <code class="verbatim">config.toml</code> in the editor. <code class="verbatim">⌥⌘,</code>.</td></tr>
1040<tr><td>Import from Emacs… (<code class="verbatim">app.import-emacs</code>)</td><td>Opens Import from Emacs….</td></tr>
1041<tr><td>Revert to File on Disk (<code class="verbatim">app.revert</code>)</td><td>Replaces the buffer with the file on disk; unsaved changes go to recovery (<code class="verbatim">revert-buffer</code>).</td></tr>
1042<tr><td>Recovery Versions… (<code class="verbatim">app.recovery</code>)</td><td>Shows the recovery versions of the file.</td></tr>
1043<tr><td>Resolve Sync Conflicts… (<code class="verbatim">app.sync-conflicts</code>)</td><td>Shows the file's sync conflict copies to resolve them.</td></tr>
1044<tr><td>Import Table from File… (<code class="verbatim">app.table-import</code>)</td><td>Asks for a CSV, TSV or space-separated file and inserts it as a table (<code class="verbatim">org-table-import</code>).</td></tr>
1045<tr><td>Export Table to File… (<code class="verbatim">app.table-export</code>)</td><td>Writes the table at point to a CSV or TSV file (<code class="verbatim">org-table-export</code>).</td></tr>
1046<tr><td>Show or Hide Outline (<code class="verbatim">app.toggle-outline</code>)</td><td>Shows or hides the outline pane. View ▸ Show or Hide Outline, <code class="verbatim">⌥⌘O</code>.</td></tr>
1047<tr><td>Show or Hide Backlinks (<code class="verbatim">app.toggle-backlinks</code>)</td><td>Shows or hides the backlinks pane. View ▸ Show or Hide Backlinks.</td></tr>
1048<tr><td>Show or Hide Columns and Clock (<code class="verbatim">app.toggle-inspector</code>)</td><td>Shows or hides the columns and clock inspector. View ▸ Show or Hide Columns and Clock, <code class="verbatim">⌥⌘I</code>.</td></tr>
1049<tr><td>Show or Hide Markup (<code class="verbatim">app.toggle-markup</code>)</td><td>Shows or hides link brackets and emphasis markers. View ▸ Show Markup, <code class="verbatim">⇧⌘M</code>.</td></tr>
1050<tr><td>Show or Hide Line Numbers (<code class="verbatim">app.toggle-line-numbers</code>)</td><td>Shows or hides line numbers. View ▸ Show Line Numbers, <code class="verbatim">⇧⌘L</code>.</td></tr>
1051<tr><td>Show or Hide Tab Bar (<code class="verbatim">app.toggle-tab-bar</code>)</td><td>Shows or hides the tab bar. View ▸ Show Tab Bar.</td></tr>
1052<tr><td>Tangle Block (<code class="verbatim">org.babel.tangle-block</code>)</td><td>Tangles only the src block at point (<code class="verbatim">org-babel-tangle</code> with <code class="verbatim">C-u</code>).</td></tr>
1053<tr><td>Tangle Block's Target (<code class="verbatim">org.babel.tangle-target</code>)</td><td>Tangles every block that writes to the same file as the block at point (<code class="verbatim">org-babel-tangle</code> with <code class="verbatim">C-u C-u</code>).</td></tr>
1054<tr><td>Column View of File (<code class="verbatim">org.columns.global</code>)</td><td>Shows the column view of the whole file (<code class="verbatim">org-columns</code> with <code class="verbatim">C-u</code>).</td></tr>
1055<tr><td>Remove Schedule (<code class="verbatim">org.schedule.remove</code>)</td><td>Removes <code class="verbatim">SCHEDULED</code> (<code class="verbatim">org-schedule</code> with <code class="verbatim">C-u</code>).</td></tr>
1056<tr><td>Remove Deadline (<code class="verbatim">org.deadline.remove</code>)</td><td>Removes <code class="verbatim">DEADLINE</code> (<code class="verbatim">org-deadline</code> with <code class="verbatim">C-u</code>).</td></tr>
1057<tr><td>Create ID (<code class="verbatim">org.id.create</code>)</td><td>Gives the entry an <code class="verbatim">ID</code> property, a lowercase UUID, unless it has one (<code class="verbatim">org-id-get-create</code>).</td></tr>
1058<tr><td>Delete Property… (<code class="verbatim">org.property.delete</code>)</td><td>Asks for a property of the entry and deletes it (<code class="verbatim">org-delete-property</code>).</td></tr>
1059<tr><td>Delete Property Everywhere… (<code class="verbatim">org.property.delete-globally</code>)</td><td>Asks for a property and deletes it from every entry in the file (<code class="verbatim">org-delete-property-globally</code>).</td></tr>
1060<tr><td>Property Action… (<code class="verbatim">org.property.action</code>)</td><td>Offers set, delete and delete globally for the property at point (<code class="verbatim">org-property-action</code>). <code class="verbatim">C-c C-c</code> in a property drawer runs it.</td></tr>
1061<tr><td>Footnote Menu (<code class="verbatim">org.footnote.menu</code>)</td><td>Offers the footnote commands as a menu (<code class="verbatim">org-footnote-action</code> with <code class="verbatim">C-u</code>).</td></tr>
1062<tr><td>Set Field Formula (<code class="verbatim">org.table.field-formula</code>)</td><td>Asks for the current field's formula (<code class="verbatim">org-table-eval-formula</code> with <code class="verbatim">C-u</code>).</td></tr>
1063<tr><td>Sort Table Lines (<code class="verbatim">org.table.sort</code>)</td><td>Asks for alphabetic, numeric or time order, or their reverse, and sorts the table's lines by the current column (<code class="verbatim">org-table-sort-lines</code>). Sort Entries does the same in a table.</td></tr>
1064<tr><td>Transpose Table (<code class="verbatim">org.table.transpose</code>)</td><td>Swaps the table's rows and columns (<code class="verbatim">org-table-transpose-table-at-point</code>).</td></tr>
1065<tr><td>Shrink Table Columns with Widths (<code class="verbatim">org.table.shrink</code>)</td><td>Shrinks the table's columns that have a width cookie (<code class="verbatim">org-table-shrink</code>).</td></tr>
1066<tr><td>Expand Table Columns (<code class="verbatim">org.table.expand</code>)</td><td>Expands the table's shrunk columns (<code class="verbatim">org-table-expand</code>).</td></tr>
1067</tbody>
1068</table>
1069<h3 id="speed-keys-reference">Speed keys reference</h3>
1070<p>At the very start of a heading line, with <code class="verbatim">org-use-speed-commands</code> on. The same in every preset (Doom: insert state).</p>
1071<table>
1072<thead>
1073<tr><th>Key</th><th>Command</th></tr>
1074</thead>
1075<tbody>
1076<tr><td><code class="verbatim">n</code></td><td>Next Heading (<code class="verbatim">org.heading.next</code>)</td></tr>
1077<tr><td><code class="verbatim">p</code></td><td>Previous Heading (<code class="verbatim">org.heading.previous</code>)</td></tr>
1078<tr><td><code class="verbatim">f</code></td><td>Next Heading at Same Level (<code class="verbatim">org.heading.forward-same-level</code>)</td></tr>
1079<tr><td><code class="verbatim">b</code></td><td>Previous Heading at Same Level (<code class="verbatim">org.heading.backward-same-level</code>)</td></tr>
1080<tr><td><code class="verbatim">u</code></td><td>Up to Parent Heading (<code class="verbatim">org.heading.up</code>)</td></tr>
1081<tr><td><code class="verbatim">j</code></td><td>Go to Heading… (<code class="verbatim">org.goto</code>)</td></tr>
1082<tr><td><code class="verbatim">c</code></td><td>Cycle Visibility (<code class="verbatim">org.cycle</code>)</td></tr>
1083<tr><td><code class="verbatim">C</code></td><td>Cycle Global Visibility (<code class="verbatim">org.cycle-global</code>)</td></tr>
1084<tr><td><code class="verbatim">s</code></td><td>Narrow to Subtree or Widen (<code class="verbatim">org.narrow.toggle</code>)</td></tr>
1085<tr><td><code class="verbatim">k</code></td><td>Cut Subtree (<code class="verbatim">org.subtree.cut</code>)</td></tr>
1086<tr><td><code class="verbatim">U</code></td><td>Move Subtree Up (<code class="verbatim">org.subtree.up</code>)</td></tr>
1087<tr><td><code class="verbatim">D</code></td><td>Move Subtree Down (<code class="verbatim">org.subtree.down</code>)</td></tr>
1088<tr><td><code class="verbatim">r</code></td><td>Demote Heading (<code class="verbatim">org.heading.demote</code>)</td></tr>
1089<tr><td><code class="verbatim">l</code></td><td>Promote Heading (<code class="verbatim">org.heading.promote</code>)</td></tr>
1090<tr><td><code class="verbatim">R</code></td><td>Demote Subtree (<code class="verbatim">org.subtree.demote</code>)</td></tr>
1091<tr><td><code class="verbatim">L</code></td><td>Promote Subtree (<code class="verbatim">org.subtree.promote</code>)</td></tr>
1092<tr><td><code class="verbatim">i</code></td><td>Insert Heading After Subtree (<code class="verbatim">org.heading.insert-after-subtree</code>)</td></tr>
1093<tr><td><code class="verbatim">w</code></td><td>Refile… (<code class="verbatim">app.refile</code>)</td></tr>
1094<tr><td><code class="verbatim">a</code></td><td>Archive Subtree (<code class="verbatim">app.archive</code>)</td></tr>
1095<tr><td><code class="verbatim">@</code></td><td>Mark Subtree (<code class="verbatim">org.subtree.mark</code>)</td></tr>
1096<tr><td><code class="verbatim">#</code></td><td>Toggle COMMENT (<code class="verbatim">org.heading.toggle-comment</code>)</td></tr>
1097<tr><td><code class="verbatim">I</code></td><td>Clock In (<code class="verbatim">app.clock.in</code>)</td></tr>
1098<tr><td><code class="verbatim">O</code></td><td>Clock Out (<code class="verbatim">app.clock.out</code>)</td></tr>
1099<tr><td><code class="verbatim">t</code></td><td>Cycle TODO State (<code class="verbatim">org.todo.cycle</code>)</td></tr>
1100<tr><td><code class="verbatim">,</code></td><td>Set Priority… (<code class="verbatim">org.priority.set</code>)</td></tr>
1101<tr><td><code class="verbatim">0</code></td><td>Remove Priority (<code class="verbatim">org.priority.remove</code>)</td></tr>
1102<tr><td><code class="verbatim">1</code></td><td>Set Priority A (<code class="verbatim">org.priority.set-a</code>)</td></tr>
1103<tr><td><code class="verbatim">2</code></td><td>Set Priority B (<code class="verbatim">org.priority.set-b</code>)</td></tr>
1104<tr><td><code class="verbatim">3</code></td><td>Set Priority C (<code class="verbatim">org.priority.set-c</code>)</td></tr>
1105<tr><td><code class="verbatim">:</code></td><td>Set Tags (<code class="verbatim">org.tags.set</code>)</td></tr>
1106<tr><td><code class="verbatim">e</code></td><td>Set Effort (<code class="verbatim">org.effort.set</code>)</td></tr>
1107<tr><td><code class="verbatim">v</code></td><td>Agenda (<code class="verbatim">app.agenda</code>)</td></tr>
1108<tr><td><code class="verbatim">o</code></td><td>Open Link (<code class="verbatim">org.link.open</code>)</td></tr>
1109</tbody>
1110</table>
1111</main>
1112<footer class="site">
1113Orgstar is 0BSD-licensed. Source: <a href="https://gitbay.org/krz/orgstar">gitbay.org/krz/orgstar</a>.
1114</footer>
1115</body>
1116</html>