krz/orgstar

A native macOS editor for org-mode files. editor org-mode swift

Commit d4c76b8503

d4c76b8503d7069cc3c2404db3cafc46defe1a9a

parent: 9c72646c0e

Verified · cmc

cmc <hello@cleberg.net> · 2026-10-08 04:40 UTC

Update the manual for the review fixes

Describe the current Mac preset keys (Set Tags C-s-g, Set Deadline
C-s-e), View menu shortcuts, Quick Open selection, capture key
sequences, keymap.toml validation, key hints, Doom's gj/gk, za/zo/zc,
H/M/L, C-d/C-u, ZZ/ZQ, gq/gw, M-q, snipe repeat and shared registers
and marks, C-c C-c in tables, formula storing and removal, @0,
attachment and radio links, lowercase IDs, backlinks before the first
heading, :eval no-export, inline calls, tangle extensions,
header-args:LANG, :exports resolution, Markdown export options, the
property macro, Emacs export PATH, config migration in place, theme
files in subfolders, agenda filter and %T, .+Nh repeaters, CLOCK
durations after shifts, TYP_TODO cycling and the iOS changes.

Layout: unified · split

docs/manual/guide/01-files-and-folders.org +4 −4
@@ -31,7 +31,7 @@ Several commands in this chapter are only in the palette, not in a menu: Close O
31 31
32| Menu item | Shortcut | Palette title | 32| Menu item | Shortcut | Palette title |
33|------------------------------------------+----------+----------------------------------| 33|------------------------------------------+----------+----------------------------------|
34| View ▸ Show or Hide Outline | | Show or Hide Outline | 34| View ▸ Show or Hide Outline | =⌥⌘O= | Show or Hide Outline |
35| View ▸ Show or Hide Backlinks | | Show or Hide Backlinks | 35| View ▸ Show or Hide Backlinks | | Show or Hide Backlinks |
36| View ▸ Show or Hide Columns and Clock | =⌥⌘I= | Show or Hide Columns and Clock | 36| View ▸ Show or Hide Columns and Clock | =⌥⌘I= | Show or Hide Columns and Clock |
37| View ▸ Show Tab Bar | | Show or Hide Tab Bar | 37| View ▸ Show Tab Bar | | Show or Hide Tab Bar |
@@ -99,7 +99,7 @@ Right-click a file or folder in the sidebar for:
99- New File… — creates a file in that folder (for a file, in the folder holding it). A name without an extension gets =.org=. A name like =projects/house= creates the =projects= folder too. Names can't start with =/= or contain =..=. The new file opens. 99- New File… — creates a file in that folder (for a file, in the folder holding it). A name without an extension gets =.org=. A name like =projects/house= creates the =projects= folder too. Names can't start with =/= or contain =..=. The new file opens.
100- Rename… — renames the file or folder in place. The new name can't contain =/=. Open buffers of the file, or of files inside the folder, are saved first (in explicit save mode you are asked) and reopened under the new path. 100- Rename… — renames the file or folder in place. The new name can't contain =/=. Open buffers of the file, or of files inside the folder, are saved first (in explicit save mode you are asked) and reopened under the new path.
101- Show in Finder. 101- Show in Finder.
102- Move to Trash… — moves the file or folder to the Trash after you confirm. Open buffers of it close without saving. You can put it back from the Trash in Finder. 102- Move to Trash… — moves the file or folder to the Trash after you confirm. Open buffers of it close without saving; the confirmation warns you when the file, or an open file inside the folder, has unsaved changes. You can put it back from the Trash in Finder.
103 103
104Right-click a root's header for New File…, Expand or Collapse, Show in Finder and Remove from Sidebar…. 104Right-click a root's header for New File…, Expand or Collapse, Show in Finder and Remove from Sidebar….
105 105
@@ -107,7 +107,7 @@ Right-click a root's header for New File…, Expand or Collapse, Show in Finder
107 107
108Click a file in the sidebar to open it. Other ways: 108Click a file in the sidebar to open it. Other ways:
109 109
110- *Quick Open*: File ▸ Quick Open… (=⌘P=; =C-x C-f= in the Emacs and Doom presets; =SPC SPC=, =SPC .= or =SPC f f= in Doom normal state). Type part of a file's path below its root. Characters match in order, not necessarily next to each other; matches at the start of a word and runs of consecutive characters rank higher, and shorter paths win ties. Up to 50 matches show, with each file's name and path. Press =Return= to open the top match or click any match; =Escape= closes the list. Syncthing conflict copies are left out. 110- *Quick Open*: File ▸ Quick Open… (=⌘P=; =C-x C-f= in the Emacs and Doom presets; =SPC SPC=, =SPC .= or =SPC f f= in Doom normal state). Type part of a file's path below its root. Characters match in order, not necessarily next to each other; matches at the start of a word and runs of consecutive characters rank higher, and shorter paths win ties. Up to 50 matches show, with each file's name and path. The top match is selected; =↑= and =↓=, or =C-p= and =C-n=, move the selection. Press =Return= to open the selected match or click any match; =Escape= closes the list. Syncthing conflict copies are left out.
111- *Finder*: open an org file from Finder, with =open file.org= in Terminal, or by dropping it on Orgstar's Dock icon. Orgstar registers as the default app for org files and as an alternative editor for plain text. Each file opens as a buffer. 111- *Finder*: open an org file from Finder, with =open file.org= in Terminal, or by dropping it on Orgstar's Dock icon. Orgstar registers as the default app for org files and as an alternative editor for plain text. Each file opens as a buffer.
112- *Links*: following a =file:= link or an ID link opens the target file; see [[file:09-links.org][Links]]. 112- *Links*: following a =file:= link or an ID link opens the target file; see [[file:09-links.org][Links]].
113- *Doom ex command*: =:e FILE= opens =FILE=, relative to the current file's folder; =~= is expanded. A file that doesn't exist is reported as =No file FILE=. 113- *Doom ex command*: =:e FILE= opens =FILE=, relative to the current file's folder; =~= is expanded. A file that doesn't exist is reported as =No file FILE=.
@@ -195,7 +195,7 @@ The outline follows your edits after a short pause in typing.
195 195
196** Backlinks 196** Backlinks
197 197
198Under the outline, the backlinks pane lists headings in your folders that link to the current file (=Links to this file=) and to the heading at the caret (=Links to= followed by the heading's title). It updates as you move the caret. Click an entry to open it. Turn the pane off with View ▸ Show or Hide Backlinks. Which links count is covered in [[file:09-links.org][Links]]. 198Under the outline, the backlinks pane lists headings in your folders that link to the current file (a link before a file's first heading is listed under the file's name) (=Links to this file=) and to the heading at the caret (=Links to= followed by the heading's title). It updates as you move the caret. Click an entry to open it. Turn the pane off with View ▸ Show or Hide Backlinks. Which links count is covered in [[file:09-links.org][Links]].
199 199
200** Inspector 200** Inspector
201 201
docs/manual/guide/02-the-editor.org +10 −5
@@ -84,10 +84,15 @@ Headings, drawers and blocks fold as in Org. Folding is display only and isn't s
84 84
85| Action | Emacs and Mac presets | Doom | Org command | 85| Action | Emacs and Mac presets | Doom | Org command |
86|--------------------------------+-----------------------+------------------------------------------------------+----------------------| 86|--------------------------------+-----------------------+------------------------------------------------------+----------------------|
87| Cycle the heading or element at the caret | =TAB= | =TAB=, =z a=, =z c=, =z o= in normal state; =TAB= in visual state | =org-cycle= | 87| Cycle the heading or element at the caret | =TAB= | =TAB= in normal and visual state | =org-cycle= |
88| Cycle the whole file | =S-TAB= | =S-TAB=, =z A= in normal state; =S-TAB= in visual state | =org-global-cycle= | 88| Cycle the whole file | =S-TAB= | =S-TAB=, =z A= in normal state; =S-TAB= in visual state | =org-global-cycle= |
89| Open or fold the heading | | =z a= in normal state | =+org/toggle-fold= |
90| Open the heading one level | | =z o= in normal state | =+org/open-fold= |
91| Fold the subtree the caret is in | | =z c= in normal state | =outline-hide-subtree= |
89 92
90The palette titles are Cycle Visibility and Cycle Global Visibility; both are also in the Org menu. 93The titles in the palette and the Org menu are Cycle Visibility, Cycle Global Visibility, Toggle Fold, Open Fold and Close Fold.
94
95Toggle Fold and Open Fold act on a heading line: a folded heading opens one level, showing its body and its child headings, each folded. On an open heading, Toggle Fold folds it and Open Fold does nothing. Close Fold folds the subtree of the heading the caret is under, from anywhere in it.
91 96
92=TAB= on a heading line cycles that heading: folded, then its children, then the whole subtree, then folded again. A heading without children goes straight from folded to open. =TAB= on the first or last line of a drawer or block folds or opens it; drawer and block folds are kept apart from heading folds, so cycling a heading leaves them as they are. Elsewhere =TAB= does what it otherwise would: in a table it moves to the next field, and in plain text it inserts a tab. 97=TAB= on a heading line cycles that heading: folded, then its children, then the whole subtree, then folded again. A heading without children goes straight from folded to open. =TAB= on the first or last line of a drawer or block folds or opens it; drawer and block folds are kept apart from heading folds, so cycling a heading leaves them as they are. Elsewhere =TAB= does what it otherwise would: in a table it moves to the next field, and in plain text it inserts a tab.
93 98
@@ -170,7 +175,7 @@ The running clock is covered in [[file:06-dates-and-clocking.org][Dates and cloc
170The line under the modeline is the echo area, as Emacs's minibuffer. It shows: 175The line under the modeline is the echo area, as Emacs's minibuffer. It shows:
171 176
172- *Messages* from commands, such as =Stored: …= or =Not an org file=. A message stays for 4 seconds. 177- *Messages* from commands, such as =Stored: …= or =Not an org file=. A message stays for 4 seconds.
173- *A pending key prefix*. After =C-c= it shows =C-c-=. If you pause for about 0.6 seconds, a grid of the keys that can follow appears, each with the command it runs, or =+prefix= for a further prefix, as =which-key= shows them. =C-g= cancels the prefix and shows =Quit=. A sequence that isn't bound shows, for example, =C-c z is undefined=. 178- *A pending key prefix*. After =C-c= it shows =C-c-=. If you pause for about 0.6 seconds, a grid of the keys that can follow appears, each with the command it would run at the caret, or =+prefix= for a further prefix, as =which-key= shows them. =C-g= cancels the prefix and shows =Quit=. A sequence that isn't bound shows, for example, =C-c z is undefined=, and does nothing; in the Doom preset this includes sequences after =SPC=.
174- *Prompts*, when a command asks a question. 179- *Prompts*, when a command asks a question.
175 180
176** Prompts 181** Prompts
@@ -251,7 +256,7 @@ Misspelt words are underlined, using the macOS spelling dictionary. In org files
251 256
252Orgstar never corrects spelling on its own; automatic spelling correction, text replacement and smart quotes and dashes are off. 257Orgstar never corrects spelling on its own; automatic spelling correction, text replacement and smart quotes and dashes are off.
253 258
254On iOS, spell checking is always on. 259On iOS, spell checking follows =spell-check= in the synced =config.toml=, and is off by default.
255 260
256* Wrapping and filling 261* Wrapping and filling
257 262
@@ -265,7 +270,7 @@ Long lines wrap at the edge of the editor by default. Truncate or Wrap Long Line
265 270
266To truncate lines in every file, set =org-startup-truncated = true= in =config.toml=. The default is to wrap, as Doom does; Emacs's own default is to truncate. 271To truncate lines in every file, set =org-startup-truncated = true= in =config.toml=. The default is to wrap, as Doom does; Emacs's own default is to truncate.
267 272
268Wrapping is display only. To rewrap the text of a paragraph, use Org ▸ Fill Paragraph (=org-fill-paragraph=), which breaks the paragraph's lines at the fill column: =M-q= in the Emacs preset, =⌃⌘P= in the Mac preset, the Org menu or palette in Doom. The fill column is Settings ▸ Editing ▸ "M-q fills to column N" (80 by default, 40 to 200), or =fill-column= in =config.toml=. Orgstar has no auto-fill: lines are not broken as you type. 273Wrapping is display only. To rewrap the text of a paragraph, use Org ▸ Fill Paragraph (=org-fill-paragraph=), which breaks the paragraph's lines at the fill column: =M-q= in the Emacs preset and in every Doom state, =⌃⌘P= in the Mac preset. In Doom's normal and visual states, =gq= and =gw= with a motion fill the paragraphs in the lines it covers (=gqq= and =gww= for the current lines); =gq= leaves the caret on the last line, =gw= where it was. See [[file:03-keys.org][Keys and commands]]. The fill column is Settings ▸ Editing ▸ "M-q fills to column N" (80 by default, 40 to 200), or =fill-column= in =config.toml=. Orgstar has no auto-fill: lines are not broken as you type.
269 274
270* View toggles 275* View toggles
271 276
docs/manual/guide/03-keys.org +50 −43
@@ -20,8 +20,6 @@ Choose a preset in Settings ▸ General ▸ Keys, or with =keymap= in the =[orgs
20 20
21The Mac preset binds fewer commands than the others. It has no keys for links, export, agenda, capture, clocking, narrowing, sorting, properties, footnotes, code blocks or =C-c C-c=. Run those from the Org menu, from the command palette (=⇧⌘P=), from a menu shortcut (Agenda =⇧⌘A=, Capture =⇧⌘N=), or bind them yourself in =keymap.toml=. 21The Mac preset binds fewer commands than the others. It has no keys for links, export, agenda, capture, clocking, narrowing, sorting, properties, footnotes, code blocks or =C-c C-c=. Run those from the Org menu, from the command palette (=⇧⌘P=), from a menu shortcut (Agenda =⇧⌘A=, Capture =⇧⌘N=), or bind them yourself in =keymap.toml=.
22 22
23The Mac preset binds Set Tags to =⌃⌘Q=, which is also the macOS Lock Screen shortcut. macOS takes that key first, so give Set Tags another key in =keymap.toml= (for example =C-s-g= for =⌃⌘G=) or run it from the Org menu.
24
25In 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: =⌥←=, =⌘←=, =⇧= with arrows to select, and the Control keys the macOS text system provides (=⌃A=, =⌃E=, =⌃K= and so on). Menu shortcuts such as =⌘S= and =⌘F= work in every preset; see [[*Menu shortcuts][Menu shortcuts]]. 23In 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: =⌥←=, =⌘←=, =⇧= with arrows to select, and the Control keys the macOS text system provides (=⌃A=, =⌃E=, =⌃K= and so on). Menu shortcuts such as =⌘S= and =⌘F= work in every preset; see [[*Menu shortcuts][Menu shortcuts]].
26 24
27* Option as Meta 25* Option as Meta
@@ -69,9 +67,9 @@ In a file that is not an Org file, =org.= commands never apply, so their keys fa
69 67
70A prefix is a key that starts longer sequences, such as =C-c=, =C-c C-x=, =C-x n= or, in the Doom preset, =SPC= and =SPC m=. After a prefix, Orgstar waits for the next key and shows the keys typed so far in the echo area, followed by a dash: =C-c C-x-=. 68A prefix is a key that starts longer sequences, such as =C-c=, =C-c C-x=, =C-x n= or, in the Doom preset, =SPC= and =SPC m=. After a prefix, Orgstar waits for the next key and shows the keys typed so far in the echo area, followed by a dash: =C-c C-x-=.
71 69
72If 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 =+prefix= when it leads to a longer sequence. This is Orgstar's version of =which-key=. The hints follow the current keymap, including your =keymap.toml=, and in the Doom preset the current evil state. A hint shows the highest-priority command for the key, which may not be the one that runs at the caret when the key has several contexts (=C-c C-c= is the common case). 70If 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 =+prefix= when it leads to a longer sequence. This is Orgstar's version of =which-key=. The hints follow the current keymap, including your =keymap.toml=, and in the Doom preset the current evil state. When a key has several contexts (=C-c C-c= 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.
73 71
74=C-g= during a prefix cancels it; in the Emacs and Mac presets the echo area shows =Quit=. A sequence that nothing binds shows, for example, =C-c z is undefined= in the Emacs and Mac presets. 72=C-g= during a prefix cancels it; in the Emacs and Mac presets the echo area shows =Quit=. A sequence that nothing binds shows, for example, =C-c z is undefined= and does nothing. In the Doom preset this holds for sequences that start with =SPC= or with a Control or Meta key; see [[*How keys are handled][How keys are handled]] for the others.
75 73
76A key bound by itself cannot also be a prefix. When a keymap binds both =C-c= and =C-c C-t=, =C-c= always waits for the next key, so the binding for =C-c= alone never runs. 74A key bound by itself cannot also be a prefix. When a keymap binds both =C-c= and =C-c C-t=, =C-c= always waits for the next key, so the binding for =C-c= alone never runs.
77 75
@@ -125,13 +123,14 @@ These come from the menu bar and work in every preset. In the Doom preset, keys
125| Edit | Search Notes | =⇧⌘F= | 123| Edit | Search Notes | =⇧⌘F= |
126| View | Show Markup | =⇧⌘M= | 124| View | Show Markup | =⇧⌘M= |
127| View | Show Line Numbers | =⇧⌘L= | 125| View | Show Line Numbers | =⇧⌘L= |
128| View | Show or Hide Columns and Clock | =⌥⌘I= or =⌥⌘O= (see below) | 126| View | Show or Hide Outline | =⌥⌘O= |
127| View | Show or Hide Columns and Clock | =⌥⌘I= |
129| Window | Agenda | =⇧⌘A= | 128| Window | Agenda | =⇧⌘A= |
130| Window | Board | =⇧⌘B= | 129| Window | Board | =⇧⌘B= |
131| Window | Next Buffer | =⇧⌘]= | 130| Window | Next Buffer | =⇧⌘]= |
132| Window | Previous Buffer | =⇧⌘[= | 131| Window | Previous Buffer | =⇧⌘[= |
133 132
134View ▸ Show or Hide Outline, Show or Hide Backlinks and Show Tab Bar, Window ▸ Switch to Buffer…, and the items of File ▸ Export have no shortcut. The Columns and Clock item declares both =⌥⌘I= and =⌥⌘O=, and only one of them takes effect. 133View ▸ Show or Hide Backlinks and Show Tab Bar, Window ▸ Switch to Buffer…, and the items of File ▸ Export have no shortcut.
135 134
136With Settings ▸ Capture ▸ "⌃⌥Space opens Capture from any app" on (the default), =⌃⌥Space= opens the Capture window from any application (see [[file:08-capture.org][Capture]]). 135With Settings ▸ Capture ▸ "⌃⌥Space opens Capture from any app" on (the default), =⌃⌥Space= opens the Capture window from any application (see [[file:08-capture.org][Capture]]).
137 136
@@ -143,7 +142,7 @@ Speed keys work in the Emacs and Mac presets, and in the Doom preset in insert s
143 142
144* Customizing keys: keymap.toml 143* Customizing keys: keymap.toml
145 144
146Your own bindings go in =keymap.toml= in the configuration folder: =$XDG_CONFIG_HOME/orgstar/keymap.toml= when =XDG_CONFIG_HOME= is set, otherwise =~/.config/orgstar/keymap.toml=. 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 =~/Library/Application Support/Orgstar/=, that copy is read until one exists in the configuration folder; changes to it are not picked up automatically, so run Reload Keymap after editing it. 145Your own bindings go in =keymap.toml= in the configuration folder: =$XDG_CONFIG_HOME/orgstar/keymap.toml= when =XDG_CONFIG_HOME= is set, otherwise =~/.config/orgstar/keymap.toml=. 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 =~/Library/Application Support/Orgstar/=, that copy is read, and reloaded when you save it, until one exists in the configuration folder.
147 146
148The 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 =mode=. 147The 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 =mode=.
149 148
@@ -165,7 +164,7 @@ command = "org.todo.cycle"
165| =when= | no | A context from the table in [[*Contexts][Contexts]]. Without it the binding holds everywhere. | 164| =when= | no | A context from the table in [[*Contexts][Contexts]]. Without it the binding holds everywhere. |
166| =mode= | no | An evil state for the Doom preset: ="normal"=, ="insert"= or ="visual"=. | 165| =mode= | no | An evil state for the Doom preset: ="normal"=, ="insert"= or ="visual"=. |
167 166
168The [[*Key reference][key reference]] gives each command's id after its title. Commands no preset binds are listed under [[*Unbound commands][Unbound commands]]. A typo in a command id is not caught when the file loads; pressing the key shows =Unknown command= and the id. 167The [[*Key reference][key reference]] gives each command's id after its title. Commands no preset binds are listed under [[*Unbound commands][Unbound commands]]. A binding whose command id Orgstar does not know is skipped and reported when the file loads (see [[*Reloading and errors][Reloading and errors]]).
169 168
170Orgstar reads a subset of TOML: =[[bind]]= headers, =key = value= lines, basic ="..."= and literal ='...'= strings, =true= and =false=, integers, and =#= comments. Arrays, inline tables and multi-line strings are not supported. 169Orgstar reads a subset of TOML: =[[bind]]= headers, =key = value= lines, basic ="..."= and literal ='...'= strings, =true= and =false=, integers, and =#= comments. Arrays, inline tables and multi-line strings are not supported.
171 170
@@ -248,17 +247,17 @@ command = "org.heading.insert"
248mode = "insert" 247mode = "insert"
249#+END_SRC 248#+END_SRC
250 249
251=mode= is not checked when the file loads. Any value other than =normal=, =insert= or =visual= (including =visual-line=) makes a binding that never runs. 250A =mode= other than =normal=, =insert= or =visual= (including =visual-line=) is reported when the file loads, and the binding is skipped.
252 251
253** More examples 252** More examples
254 253
255#+BEGIN_SRC toml 254#+BEGIN_SRC toml
256# Mac preset: ⌃⌘L inserts a link, ⌃⌘E opens the export sheet, ⌃⌘X runs C-c C-c. 255# Mac preset: ⌃⌘L inserts a link, ⌃⌘O opens the export sheet, ⌃⌘X runs C-c C-c.
257[[bind]] 256[[bind]]
258keys = "C-s-l" 257keys = "C-s-l"
259command = "org.link.insert" 258command = "org.link.insert"
260[[bind]] 259[[bind]]
261keys = "C-s-e" 260keys = "C-s-o"
262command = "app.export-dialog" 261command = "app.export-dialog"
263[[bind]] 262[[bind]]
264keys = "C-s-x" 263keys = "C-s-x"
@@ -278,11 +277,11 @@ command = "app.reload-keymap"
278 277
279Orgstar watches the configuration folder and reloads =keymap.toml= when you save it. It also reloads when you change the preset, and when you run Reload Keymap (=app.reload-keymap=, in the palette, and =SPC h r r= in Doom normal state), which shows =Keymap reloaded=. 278Orgstar watches the configuration folder and reloads =keymap.toml= when you save it. It also reloads when you change the preset, and when you run Reload Keymap (=app.reload-keymap=, in the palette, and =SPC h r r= in Doom normal state), which shows =Keymap reloaded=.
280 279
281Problems are reported in the echo area with the line number, for example =keymap.toml: line 12: unknown context tabel (and 1 more)=. A binding with bad or missing =keys=, a missing =command=, an unknown =when=, or a table other than =[[bind]]= 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. 280Problems are reported in the echo area with the line number, for example =keymap.toml: line 12: unknown context tabel (and 1 more)=. A binding with bad or missing =keys=, a missing =command=, a command id Orgstar does not know, an unknown =when= or =mode=, or a table other than =[[bind]]= 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.
282 281
283** Importing from Emacs 282** Importing from Emacs
284 283
285Settings ▸ General ▸ Import from Emacs… reads your Emacs or Doom configuration and offers, among other things, the key bindings it finds: =global-set-key=, =keymap-global-set=, =define-key=, =keymap-set=, =evil-define-key= and Doom's =map!= with =:leader=, =:localleader=, state keywords and =:prefix=. Bindings to commands Orgstar has are appended to =keymap.toml= under a =# Imported from Emacs.= comment. See [[file:15-alongside-emacs.org][Alongside Emacs]]. 284Settings ▸ General ▸ Import from Emacs… reads your Emacs or Doom configuration and offers, among other things, the key bindings it finds: =global-set-key=, =keymap-global-set=, =define-key=, =keymap-set=, =evil-define-key= and Doom's =map!= with =:leader=, =:localleader=, state keywords and =:prefix=. Bindings to commands Orgstar has are appended to =keymap.toml= under a =# Imported from Emacs.= comment, leaving out bindings the file already has. Keys written as vectors, such as =[f5]=, are skipped. See [[file:15-alongside-emacs.org][Alongside Emacs]].
286 285
287* Vim editing (Doom preset) 286* Vim editing (Doom preset)
288 287
@@ -299,8 +298,8 @@ Each key goes first to the keymap for the current state, then to the Vim engine:
299 298
300Two consequences: 299Two consequences:
301 300
302- Keymap commands do not take counts or registers. Once you type a count or a register, the following keys go straight to Vim, so =3gj= moves three screen lines even in an Org file, where =gj= alone moves by headings. 301- Keymap commands do not take counts or registers. Once you type a count or a register, the following keys go straight to Vim.
303- A sequence the keymap does not complete is replayed into Vim. =SPC= followed by a key the leader does not bind runs Vim's =SPC= (move right) and then that key, instead of reporting the sequence as undefined. 302- A sequence the keymap does not complete after =SPC=, =C-c=, =C-x= or another Control or Meta prefix is undefined: the echo area shows, for example, =SPC j is undefined=, and nothing runs. After =g=, =z=, =[= or =]=, which are Vim prefixes too, the keys are replayed into Vim, so =gu= and =gq= reach the Vim engine although the keymap binds other =g= keys.
304 303
305** States 304** States
306 305
@@ -324,7 +323,7 @@ Motions move the caret in normal state, extend the selection in visual states, a
324|-+-| 323|-+-|
325| =h=, =l=, =<left>=, =<right>=, =DEL= | Left, right; =DEL= is =h=. Stays on the line. | 324| =h=, =l=, =<left>=, =<right>=, =DEL= | Left, right; =DEL= is =h=. Stays on the line. |
326| =j=, =k=, =<down>=, =<up>= | Down, up, keeping the column. | 325| =j=, =k=, =<down>=, =<up>= | Down, up, keeping the column. |
327| =gj=, =gk= | Down, up by screen lines in wrapped text. In Org files the keymap takes =g j= and =g k= first; see below. | 326| =gj=, =gk= | In Org files, to the next or previous Org element (=org-forward-element=, =org-backward-element=, as evil-org binds them); counts are ignored. On a heading, =gj= goes to the next heading after the subtree and =gk= to the previous heading at the same level or higher. In other files, down and up by screen lines in wrapped text. |
328| =+=, =-=, =RET= | First non-blank of the next or previous line. In Org files =RET= runs Act at Point instead. | 327| =+=, =-=, =RET= | First non-blank of the next or previous line. In Org files =RET= runs Act at Point instead. |
329| =w=, =b=, =e=, =ge= | Next word start, previous word start, word end, previous word end. | 328| =w=, =b=, =e=, =ge= | Next word start, previous word start, word end, previous word end. |
330| =W=, =B=, =E=, =gE= | The same for blank-separated WORDs. | 329| =W=, =B=, =E=, =gE= | The same for blank-separated WORDs. |
@@ -334,20 +333,19 @@ Motions move the caret in normal state, extend the selection in visual states, a
334| =g_= | Last non-blank of the line. | 333| =g_= | Last non-blank of the line. |
335| =gg=, =G= | First line, last line; with a count, that line. The column is kept (=evil-start-of-line= nil). | 334| =gg=, =G= | First line, last line; with a count, that line. The column is kept (=evil-start-of-line= nil). |
336| =f= /x/, =F= /x/, =t= /x/, =T= /x/ | To, or to just before, the next or previous /x/ on the line. | 335| =f= /x/, =F= /x/, =t= /x/, =T= /x/ | To, or to just before, the next or previous /x/ on the line. |
337| =;=, =,= | Repeats the last =f=, =F=, =t= or =T=, forward or reversed. | 336| =;=, =,= | Repeats the last =f=, =F=, =t=, =T=, =s= or =S=, forward or reversed. A snipe repeated this way searches all the text the window shows, not only the caret's line (=evil-snipe-repeat-scope=, as Doom sets it). |
338| =s= /xy/, =S= /xy/ | evil-snipe: to the next or previous /xy/ on the line. All-lowercase /xy/ matches case-insensitively. Not available after an operator. | 337| =s= /xy/, =S= /xy/ | evil-snipe: to the next or previous /xy/ on the line. All-lowercase /xy/ matches case-insensitively. Not available after an operator. |
339| =%= | The bracket matching the next =()=, =[]= or ={}= on the line. | 338| =%= | The bracket matching the next =()=, =[]= or ={}= on the line. |
340| ={=, =}= | Previous, next blank line. | 339| ={=, =}= | Previous, next blank line. |
341| =/=, =?= | Asks in the echo area for a regular expression and searches forward or backward, wrapping around the file. | 340| =/=, =?= | Asks in the echo area for a regular expression and searches forward or backward, wrapping around the file. |
342| =n=, =N= | Repeats the last search in the same or the opposite direction. | 341| =n=, =N= | Repeats the last search in the same or the opposite direction. |
343| =*=, =#= | Searches forward or backward for the whole word under the caret. | 342| =*=, =#= | Searches forward or backward for the whole word under the caret. |
344| =C-d=, =C-u= | Down, up 15 lines; with a count, that many lines. | 343| =C-d=, =C-u= | Down, up half the window's height; with a count, that many lines. |
344| =H=, =M=, =L= | First non-blank of the top, middle or bottom line the window shows. With a count, =H= goes to that line from the top and =L= from the bottom. Lines are text lines, not wrapped screen lines. Linewise after an operator. |
345| ='= /a/, =`= /a/ | To mark /a/: its line's first non-blank, or its exact position. See [[*Marks and jumps][Marks and jumps]]. | 345| ='= /a/, =`= /a/ | To mark /a/: its line's first non-blank, or its exact position. See [[*Marks and jumps][Marks and jumps]]. |
346 346
347Search patterns are ICU regular expressions as macOS uses them, close to PCRE; Emacs and Vim regexp syntax such as =\(...\)= or =\<= does not work. =:noh= is accepted and does nothing; searches are not highlighted. 347Search patterns are ICU regular expressions as macOS uses them, close to PCRE; Emacs and Vim regexp syntax such as =\(...\)= or =\<= does not work. =:noh= is accepted and does nothing; searches are not highlighted.
348 348
349=H=, =M= and =L= are not implemented.
350
351** Operators 349** Operators
352 350
353| Keys | Does | 351| Keys | Does |
@@ -358,6 +356,9 @@ Search patterns are ICU regular expressions as macOS uses them, close to PCRE; E
358| =>= /motion/, =<= /motion/ | Indents or outdents lines by 8 spaces (=evil-shift-width=, which Doom sets to Org's =tab-width=). =>>= and =<<= act on lines. | 356| =>= /motion/, =<= /motion/ | Indents or outdents lines by 8 spaces (=evil-shift-width=, which Doom sets to Org's =tab-width=). =>>= and =<<= act on lines. |
359| =g~= /motion/, =gu= /motion/, =gU= /motion/ | Toggles case, lowercases, uppercases. =g~~=, =guu=, =gUU= act on lines. | 357| =g~= /motion/, =gu= /motion/, =gU= /motion/ | Toggles case, lowercases, uppercases. =g~~=, =guu=, =gUU= act on lines. |
360| =gc= /motion/ | Comments or uncomments lines with =#= (=evilnc-comment-operator=). =gcc= acts on lines. See [[*Commenting][Commenting]]. | 358| =gc= /motion/ | Comments or uncomments lines with =#= (=evilnc-comment-operator=). =gcc= acts on lines. See [[*Commenting][Commenting]]. |
359| =gq= /motion/, =gw= /motion/ | Fills the paragraphs in the motion's lines to the fill column, as Fill Paragraph does; other elements in the lines are left alone. =gq= leaves the caret on the first non-blank of the last line, =gw= where it was. =gqq= and =gww= act on lines. |
360
361=M-q= runs Fill Paragraph in normal, insert and visual state.
361 362
362Counts multiply: =2d3w= deletes six words. Doubling an operator with a count acts on that many lines: =3dd=. 363Counts multiply: =2d3w= deletes six words. Doubling an operator with a count acts on that many lines: =3dd=.
363 364
@@ -375,8 +376,8 @@ Single-key changes:
375| =r= /x/ | Replaces the character under the caret (count: that many) with /x/; =r RET= splits the line. | 376| =r= /x/ | Replaces the character under the caret (count: that many) with /x/; =r RET= splits the line. |
376| =u=, =C-r= | Undo, redo, with counts. | 377| =u=, =C-r= | Undo, redo, with counts. |
377| =.= | Repeats the last change. | 378| =.= | Repeats the last change. |
378| =ZZ= | Saves the file. It does not close anything. | 379| =ZZ= | Saves the file and closes the window, as =:wq=. |
379| =ZQ= | Not available; shows a message. | 380| =ZQ= | Closes the window, as =:q!=. |
380 381
381=o= and =O= 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. 382=o= and =O= 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.
382 383
@@ -413,7 +414,7 @@ A count is digits before a command; =0= only counts after another digit. A regis
413 414
414Pasting 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 ="1= to ="9=, and the read-only registers such as ="%=, are not available. 415Pasting 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 ="1= to ="9=, and the read-only registers such as ="%=, are not available.
415 416
416Named registers, the yank register, marks, macros and the jump list belong to the buffer: each open file has its own set, and they are gone when the buffer closes or Orgstar quits. Only the clipboard is shared. 417Registers and macros are shared by every buffer, as in evil: a yank into ="a= in one file pastes with ="ap= in another. Lowercase marks and the jump list belong to the buffer and are gone when it closes. Nothing is kept when Orgstar quits.
417 418
418** Repeat 419** Repeat
419 420
@@ -436,9 +437,9 @@ A macro replays the keys you typed, including keymap commands, leader keys and i
436 437
437=m= /a/ sets mark /a/ (any letter) at the caret. Marks move with the text as you edit. ='= /a/ goes to the first non-blank of the mark's line, =`= /a/ to its exact position. =''= and =``= go back to where the last jump started. 438=m= /a/ sets mark /a/ (any letter) at the caret. Marks move with the text as you edit. ='= /a/ goes to the first non-blank of the mark's line, =`= /a/ to its exact position. =''= and =``= go back to where the last jump started.
438 439
439Jumps are =G=, =gg=, =%=, ={=, =}=, =n=, =N=, =*=, =#=, ='=, =`=, and searches with =/= and =?=. Each jump adds its starting point to the jump list, which keeps the last 100. =C-o= goes back through the list and =C-i= forward again. A new jump after =C-o= drops the places you went back past. 440Jumps are =G=, =gg=, =%=, ={=, =}=, =n=, =N=, =*=, =#=, ='=, =`=, =H=, =M=, =L=, and searches with =/= and =?=. Each jump adds its starting point to the jump list, which keeps the last 100. =C-o= goes back through the list and =C-i= forward again. A new jump after =C-o= drops the places you went back past.
440 441
441Uppercase marks are per buffer like lowercase ones; there are no file marks. 442Lowercase marks belong to the buffer, and so do =C-o= and =C-i=. Uppercase marks (=mA= to =mZ=) are file marks, shared by every buffer: ='A= or =`A= in another buffer shows the buffer the mark was set in, at the mark. A file mark goes away when its buffer closes.
442 443
443** Visual states 444** Visual states
444 445
@@ -454,6 +455,7 @@ In visual and visual-line state:
454| =>=, =<= | Indents or outdents its lines. | 455| =>=, =<= | Indents or outdents its lines. |
455| =~=, =u=, =U=, =g~=, =gu=, =gU= | Toggles case, lowercases, uppercases. | 456| =~=, =u=, =U=, =g~=, =gu=, =gU= | Toggles case, lowercases, uppercases. |
456| =gc= | Comments or uncomments its lines. | 457| =gc= | Comments or uncomments its lines. |
458| =gq=, =gw= | Fills the paragraphs in its lines. |
457| =J= | Joins its lines. | 459| =J= | Joins its lines. |
458| =p=, =P= | Replaces it with the clipboard or a register; the replaced text goes to the clipboard. | 460| =p=, =P= | Replaces it with the clipboard or a register; the replaced text goes to the clipboard. |
459| =S= /x/ | Surrounds it with /x/ (see below). Linewise selections get the delimiters on lines of their own. | 461| =S= /x/ | Surrounds it with /x/ (see below). Linewise selections get the delimiters on lines of their own. |
@@ -510,17 +512,18 @@ For =ds= and =cs=, brackets are found across lines; any other character is match
510 512
511** Org keys in normal state 513** Org keys in normal state
512 514
513Besides the leader, the preset binds these evil-org and Doom keys in normal state. =TAB=, =S-TAB= and =RET= in normal state, and the Emacs preset's Org keys in every state, are listed in the [[*Key reference][key reference]]. 515Besides the leader, the preset binds these evil-org and Doom keys in normal state. =TAB=, =S-TAB= and =RET= in normal state, and the Emacs preset's Org keys in every state, are listed in the [[*Key reference][key reference]]. =gj= and =gk= move by Org element; see [[*Motions][Motions]].
514 516
515| Keys | Command | 517| Keys | Command |
516|-+-| 518|-+-|
517| =TAB= | Cycle Visibility (=org-cycle=). Also in visual state. | 519| =TAB= | Cycle Visibility (=org-cycle=). Also in visual state. |
518| =S-TAB= | Cycle Global Visibility. Also in visual and insert state. | 520| =S-TAB= | Cycle Global Visibility. Also in visual and insert state. |
519| =RET= | Act at Point (=+org/dwim-at-point=). | 521| =RET= | Act at Point (=+org/dwim-at-point=). |
520| =z a=, =z c=, =z o= | Cycle Visibility. All three cycle; there is no separate open and close. | 522| =z a= | Toggle Fold (=+org/toggle-fold=). On a heading line: a folded heading opens one level, showing its body and its child headings folded; an open one folds. |
523| =z o= | Open Fold (=+org/open-fold=). On a heading line, a folded heading opens one level; an open one stays as it is. |
524| =z c= | Close Fold (=outline-hide-subtree=). Folds the subtree the caret is in, from anywhere inside it. |
521| =z A= | Cycle Global Visibility. | 525| =z A= | Cycle Global Visibility. |
522| =g h= | Up to Parent Heading. | 526| =g h= | Up to Parent Heading. |
523| =g j=, =g k= | Next or previous heading at the same level. evil-org moves by element here; Orgstar moves by heading only. In files that are not Org files these keys fall through to Vim's screen-line motions. |
524| =] h=, =[ h= | Next or previous heading at the same level. | 527| =] h=, =[ h= | Next or previous heading at the same level. |
525| =] b=, =[ b= | Next or previous buffer. | 528| =] b=, =[ b= | Next or previous buffer. |
526| =M-h=, =M-j=, =M-k=, =M-l= | =M-<left>=, =M-<down>=, =M-<up>=, =M-<right>=: promote, move down, move up, demote on headings; the same for items; move columns and rows in tables. Also in insert and visual state. | 529| =M-h=, =M-j=, =M-k=, =M-l= | =M-<left>=, =M-<down>=, =M-<up>=, =M-<right>=: promote, move down, move up, demote on headings; the same for items; move columns and rows in tables. Also in insert and visual state. |
@@ -639,7 +642,7 @@ Anything else shows =Not an editor command=. Ranges other than =%=, the =c= flag
639 642
640** Not available 643** Not available
641 644
642Things evil users may reach for that Orgstar does not have: =H=, =M=, =L=, =zz=, =zt= and the other scroll and fold =z= commands except =za=, =zc=, =zo= and =zA=; =C-a= and =C-x= to increment numbers; =gi=, =g;=, =gJ=; replace state (=R=); =&=; =q:=; the numbered and read-only registers; repeating evil-snipe with =;= or =,=; tag and sentence text objects. =C-d= and =C-u= move a fixed 15 lines rather than half the window. 645Things evil users may reach for that Orgstar does not have: =zz=, =zt= and the other scroll and fold =z= commands except =za=, =zc=, =zo= and =zA=; =C-a= and =C-x= to increment numbers; =gi=, =g;=, =gJ=; replace state (=R=); =&=; =q:=; the numbered and read-only registers; tag and sentence text objects.
643 646
644* Keys in other windows 647* Keys in other windows
645 648
@@ -683,7 +686,8 @@ With a hardware keyboard, the iOS app runs the Emacs preset's bindings, whatever
683- Option acts as Meta when the key starts a binding (=M-RET=, =M-<left>=); otherwise Option types characters as usual. 686- Option acts as Meta when the key starts a binding (=M-RET=, =M-<left>=); otherwise Option types characters as usual.
684- Keys with =⌘= are left to iOS. 687- Keys with =⌘= are left to iOS.
685- Movement and editing keys bound to =edit.= commands (=C-a=, =C-e=, =C-k= and so on) are left to the iOS text system, except undo. 688- Movement and editing keys bound to =edit.= commands (=C-a=, =C-e=, =C-k= and so on) are left to the iOS text system, except undo.
686- Of the =app.= commands only clock in, clock out, cancel clock and go to clocked entry run from keys. Other =app.= keys, and editor commands such as narrowing, do nothing. 689- Of the =app.= commands only clock in, clock out, cancel clock and go to clocked entry run from keys. Other =app.= keys, and editor commands such as narrowing, show =Not available on iOS yet=.
690- 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 =Not on a heading=).
687- A pending prefix shows as a message, without key hints. 691- A pending prefix shows as a message, without key hints.
688 692
689The on-screen key bar's buttons run what their Emacs keys run at the caret (Fold is =TAB=, Promote is =M-<left>=, TODO is =C-c C-t=). See [[file:14-ios.org][iOS]]. 693The on-screen key bar's buttons run what their Emacs keys run at the caret (Fold is =TAB=, Promote is =M-<left>=, TODO is =C-c C-t=). See [[file:14-ios.org][iOS]].
@@ -694,7 +698,7 @@ Every binding in the three presets, generated from the presets themselves. Each
694 698
695- *Emacs* lists the Emacs preset's keys. 699- *Emacs* lists the Emacs preset's keys.
696- *Mac* lists the Mac preset's keys, with macOS symbols. =⇥= is Tab and =↩= Return. 700- *Mac* lists the Mac preset's keys, with macOS symbols. =⇥= is Tab and =↩= Return.
697- *Doom* lists the keys the Doom preset adds. Every Emacs-preset key that starts with =C-c= or =C-x=, the =M-= and =S-= arrow keys, =M-RET=, =M-S-RET=, =C-RET= and =M-x= 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. 701- *Doom* lists the keys the Doom preset adds. Every Emacs-preset key that starts with =C-c= or =C-x=, the =M-= and =S-= arrow keys, =M-RET=, =M-S-RET=, =C-RET=, =M-x= and =M-q= 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.
698 702
699When a key appears in several rows, it runs the command whose condition holds at the caret: for example =M-<right>= 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. 703When a key appears in several rows, it runs the command whose condition holds at the caret: for example =M-<right>= 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.
700 704
@@ -738,13 +742,16 @@ When a key appears in several rows, it runs the command whose condition holds at
738| Find Previous (=edit.find-previous=) | — | — | — | Goes to the previous match. | 742| Find Previous (=edit.find-previous=) | — | — | — | Goes to the previous match. |
739| Use Selection for Find (=edit.use-selection-for-find=) | — | — | — | Puts the selection in the find bar. | 743| Use Selection for Find (=edit.use-selection-for-find=) | — | — | — | Puts the selection in the find bar. |
740| Complete at Point (=editor.complete=) | =C-M-i= | — | =C-SPC= (I), =C-@= (I) | Completes what is typed at the caret: =#+= keywords and their values, link types, entities, tags, TODO keywords, headings, drawers, properties, src languages and header arguments, and =<s=-style templates (=completion-at-point=). One candidate is inserted; several open a list. | 744| Complete at Point (=editor.complete=) | =C-M-i= | — | =C-SPC= (I), =C-@= (I) | Completes what is typed at the caret: =#+= keywords and their values, link types, entities, tags, TODO keywords, headings, drawers, properties, src languages and header arguments, and =<s=-style templates (=completion-at-point=). One candidate is inserted; several open a list. |
741| Fill Paragraph (=org.fill-paragraph=) | =M-q= | =⌃⌘P= | — | Refills the paragraph or list item to the fill column (=org-fill-paragraph=). | 745| Fill Paragraph (=org.fill-paragraph=) | =M-q= | =⌃⌘P= | — | Refills the paragraph or list item to the fill column (=org-fill-paragraph=). In the Doom preset, =gq= and =gw= fill the lines a motion covers; see [[*Operators][Operators]]. |
742 746
743** Outline: visibility and narrowing 747** Outline: visibility and narrowing
744 748
745| Command | Emacs | Mac | Doom | What it does | 749| Command | Emacs | Mac | Doom | What it does |
746|-+-+-+-+-| 750|-+-+-+-+-|
747| Cycle Visibility (=org.cycle=) | =TAB= | =⇥= | =TAB= (N, V), =z a= (N), =z c= (N), =z o= (N) | 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 (=org-cycle=). Elsewhere, =TAB= types a tab in the Emacs and Mac presets. | 751| Cycle Visibility (=org.cycle=) | =TAB= | =⇥= | =TAB= (N, V) | 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 (=org-cycle=). Elsewhere, =TAB= types a tab in the Emacs and Mac presets. |
752| Toggle Fold (=org.fold.toggle=) | — | — | =z a= (N) | On a heading line, opens a folded heading one level or folds an open one (=+org/toggle-fold=). |
753| Open Fold (=org.fold.open=) | — | — | =z o= (N) | On a heading line, opens a folded heading one level (=+org/open-fold=). |
754| Close Fold (=org.fold.close=) | — | — | =z c= (N) | Folds the subtree the caret is in (=outline-hide-subtree=). |
748| Cycle Global Visibility (=org.cycle-global=) | =S-TAB= | =⇧⇥= | =S-TAB=, =z A= (N) | Cycles the whole file through overview, contents and everything (=org-global-cycle=). | 755| Cycle Global Visibility (=org.cycle-global=) | =S-TAB= | =⇧⇥= | =S-TAB=, =z A= (N) | Cycles the whole file through overview, contents and everything (=org-global-cycle=). |
749| Narrow to Subtree (=org.narrow.subtree=) | =C-x n s= | — | =SPC m s n= (N) | Shows only the current subtree (=org-narrow-to-subtree=). | 756| Narrow to Subtree (=org.narrow.subtree=) | =C-x n s= | — | =SPC m s n= (N) | Shows only the current subtree (=org-narrow-to-subtree=). |
750| Narrow to Block (=org.narrow.block=) | =C-x n b= | — | — | Shows only the current block (=org-narrow-to-block=). | 757| Narrow to Block (=org.narrow.block=) | =C-x n b= | — | — | Shows only the current block (=org-narrow-to-block=). |
@@ -759,8 +766,8 @@ When a key appears in several rows, it runs the command whose condition holds at
759|-+-+-+-+-| 766|-+-+-+-+-|
760| Next Heading (=org.heading.next=) | =C-c C-n= | =⌥⌘↓= | — | Moves to the next heading (=org-next-visible-heading=). | 767| Next Heading (=org.heading.next=) | =C-c C-n= | =⌥⌘↓= | — | Moves to the next heading (=org-next-visible-heading=). |
761| Previous Heading (=org.heading.previous=) | =C-c C-p= | =⌥⌘↑= | — | Moves to the previous heading (=org-previous-visible-heading=). | 768| Previous Heading (=org.heading.previous=) | =C-c C-p= | =⌥⌘↑= | — | Moves to the previous heading (=org-previous-visible-heading=). |
762| Next Heading at Same Level (=org.heading.forward-same-level=) | =C-c C-f= | — | =g j= (N), =] h= (N) | Moves to the next heading at the same level (=org-forward-heading-same-level=). | 769| Next Heading at Same Level (=org.heading.forward-same-level=) | =C-c C-f= | — | =] h= (N) | Moves to the next heading at the same level (=org-forward-heading-same-level=). |
763| Previous Heading at Same Level (=org.heading.backward-same-level=) | =C-c C-b= | — | =g k= (N), =[ h= (N) | Moves to the previous heading at the same level (=org-backward-heading-same-level=). | 770| Previous Heading at Same Level (=org.heading.backward-same-level=) | =C-c C-b= | — | =[ h= (N) | Moves to the previous heading at the same level (=org-backward-heading-same-level=). |
764| Up to Parent Heading (=org.heading.up=) | =C-c C-u= | — | =g h= (N) | Moves to the parent heading (=outline-up-heading=). | 771| Up to Parent Heading (=org.heading.up=) | =C-c C-u= | — | =g h= (N) | Moves to the parent heading (=outline-up-heading=). |
765| Go to Heading… (=org.goto=) | =C-c C-j= | — | =SPC m .= (N) | Asks for a heading of this file by its outline path and jumps to it (=org-goto=). | 772| Go to Heading… (=org.goto=) | =C-c C-j= | — | =SPC m .= (N) | Asks for a heading of this file by its outline path and jumps to it (=org-goto=). |
766| Insert Heading (=org.heading.insert=) | =M-RET= | =⌘↩= | — | Inserts a heading at the current level; on a list item, see Insert Item (=org-meta-return=, =org-insert-heading=). | 773| Insert Heading (=org.heading.insert=) | =M-RET= | =⌘↩= | — | Inserts a heading at the current level; on a list item, see Insert Item (=org-meta-return=, =org-insert-heading=). |
@@ -814,7 +821,7 @@ When a key appears in several rows, it runs the command whose condition holds at
814| Set Priority B (=org.priority.set-b=) | — | — | — | Sets priority B. Bound only as a speed key. | 821| Set Priority B (=org.priority.set-b=) | — | — | — | Sets priority B. Bound only as a speed key. |
815| Set Priority C (=org.priority.set-c=) | — | — | — | Sets priority C. Bound only as a speed key. | 822| Set Priority C (=org.priority.set-c=) | — | — | — | Sets priority C. Bound only as a speed key. |
816| Remove Priority (=org.priority.remove=) | — | — | — | Removes the priority. Bound only as a speed key. | 823| Remove Priority (=org.priority.remove=) | — | — | — | Removes the priority. Bound only as a speed key. |
817| Set Tags (=org.tags.set=) | =C-c C-q= | =⌃⌘Q= | =SPC m q= (N) | Sets the heading's tags, with fast selection when =#+TAGS= has keys (=org-set-tags-command=). | 824| Set Tags (=org.tags.set=) | =C-c C-q= | =⌃⌘G= | =SPC m q= (N) | Sets the heading's tags, with fast selection when =#+TAGS= has keys (=org-set-tags-command=). |
818 825
819** Properties and column view 826** Properties and column view
820 827
@@ -835,7 +842,7 @@ When a key appears in several rows, it runs the command whose condition holds at
835| Insert Timestamp (=org.timestamp.active=) | =C-c .= | =⌃⌘.= | =SPC m d t= (N) | Asks for a date and inserts an active timestamp, or changes the one at point (=org-timestamp=). | 842| Insert Timestamp (=org.timestamp.active=) | =C-c .= | =⌃⌘.= | =SPC m d t= (N) | Asks for a date and inserts an active timestamp, or changes the one at point (=org-timestamp=). |
836| Insert Inactive Timestamp (=org.timestamp.inactive=) | =C-c != | =⌃⌥⌘.= | =SPC m d T= (N) | Same, inactive (=org-timestamp-inactive=). | 843| Insert Inactive Timestamp (=org.timestamp.inactive=) | =C-c != | =⌃⌥⌘.= | =SPC m d T= (N) | Same, inactive (=org-timestamp-inactive=). |
837| Schedule (=org.schedule=) | =C-c C-s= | =⌃⌘S= | =SPC m d s= (N) | Asks for a date and sets =SCHEDULED= (=org-schedule=). | 844| Schedule (=org.schedule=) | =C-c C-s= | =⌃⌘S= | =SPC m d s= (N) | Asks for a date and sets =SCHEDULED= (=org-schedule=). |
838| Set Deadline (=org.deadline=) | =C-c C-d= | =⌃⌘D= | =SPC m d d= (N) | Asks for a date and sets =DEADLINE= (=org-deadline=). | 845| Set Deadline (=org.deadline=) | =C-c C-d= | =⌃⌘E= | =SPC m d d= (N) | Asks for a date and sets =DEADLINE= (=org-deadline=). |
839| Increase Timestamp Part (=org.timestamp.up=) | =S-<up>= | =⌃⌘↑= | =C-S-k= (N, I) | On a timestamp, increases the part under the caret: year, month, day, hour or minute (=org-timestamp-up=). | 846| Increase Timestamp Part (=org.timestamp.up=) | =S-<up>= | =⌃⌘↑= | =C-S-k= (N, I) | On a timestamp, increases the part under the caret: year, month, day, hour or minute (=org-timestamp-up=). |
840| Decrease Timestamp Part (=org.timestamp.down=) | =S-<down>= | =⌃⌘↓= | =C-S-j= (N, I) | On a timestamp, decreases the part under the caret (=org-timestamp-down=). | 847| Decrease Timestamp Part (=org.timestamp.down=) | =S-<down>= | =⌃⌘↓= | =C-S-j= (N, I) | On a timestamp, decreases the part under the caret (=org-timestamp-down=). |
841| Timestamp One Day Later (=org.timestamp.day-later=) | =S-<right>= | =⌃⌘→= | =C-S-l= (N, I) | On a timestamp, moves it one day later (=org-timestamp-up-day=). | 848| Timestamp One Day Later (=org.timestamp.day-later=) | =S-<right>= | =⌃⌘→= | =C-S-l= (N, I) | On a timestamp, moves it one day later (=org-timestamp-up-day=). |
@@ -856,7 +863,7 @@ When a key appears in several rows, it runs the command whose condition holds at
856| Next Table Field (=org.table.next-field=) | =TAB= | =⇥= | =TAB= (I) | In a table, aligns it and moves to the next field, adding a row at the end (=org-table-next-field=). | 863| Next Table Field (=org.table.next-field=) | =TAB= | =⇥= | =TAB= (I) | In a table, aligns it and moves to the next field, adding a row at the end (=org-table-next-field=). |
857| Previous Table Field (=org.table.previous-field=) | =S-TAB= | =⇧⇥= | =S-TAB= (I) | In a table, moves to the previous field (=org-table-previous-field=). | 864| Previous Table Field (=org.table.previous-field=) | =S-TAB= | =⇧⇥= | =S-TAB= (I) | In a table, moves to the previous field (=org-table-previous-field=). |
858| Next Table Row (=org.table.next-row=) | =RET= | =↩= | =RET= (I) | In a table, moves to the same field in the next row, adding a row at the end (=org-table-next-row=). | 865| Next Table Row (=org.table.next-row=) | =RET= | =↩= | =RET= (I) | In a table, moves to the same field in the next row, adding a row at the end (=org-table-next-row=). |
859| Align Table (=org.table.align=) | =C-c C-c= | — | =SPC m b a= (N) | In a table, aligns it (=org-table-align=). | 866| Align Table (=org.table.align=) | — | — | =SPC m b a= (N) | In a table, aligns it (=org-table-align=). =C-c C-c= in a table also aligns it; see Act at Point. |
860| Move Table Row Up (=org.table.row-up=) | =M-<up>= | =⌃⌘↑= | =M-k= | In a table, moves the row up (=org-table-move-row-up=). | 867| Move Table Row Up (=org.table.row-up=) | =M-<up>= | =⌃⌘↑= | =M-k= | In a table, moves the row up (=org-table-move-row-up=). |
861| Move Table Row Down (=org.table.row-down=) | =M-<down>= | =⌃⌘↓= | =M-j= | In a table, moves the row down (=org-table-move-row-down=). | 868| Move Table Row Down (=org.table.row-down=) | =M-<down>= | =⌃⌘↓= | =M-j= | In a table, moves the row down (=org-table-move-row-down=). |
862| Move Table Column Left (=org.table.column-left=) | =M-<left>= | =⌃⌘←= | =M-h=, =C-d= (I) | In a table, moves the column left (=org-table-move-column-left=). | 869| Move Table Column Left (=org.table.column-left=) | =M-<left>= | =⌃⌘←= | =M-h=, =C-d= (I) | In a table, moves the column left (=org-table-move-column-left=). |
@@ -886,7 +893,7 @@ When a key appears in several rows, it runs the command whose condition holds at
886 893
887| Command | Emacs | Mac | Doom | What it does | 894| Command | Emacs | Mac | Doom | What it does |
888|-+-+-+-+-| 895|-+-+-+-+-|
889| Act at Point (C-c C-c) (=org.ctrl-c-ctrl-c=) | =C-c C-c= | — | — | 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, and refreshes the setup on a =#+= keyword line (=org-ctrl-c-ctrl-c=). After a sparse tree, the first =C-c C-c= only clears the highlights. More specific bindings take =C-c C-c= in tables, src blocks, =#+TBLFM= lines and dynamic blocks. | 896| Act at Point (C-c C-c) (=org.ctrl-c-ctrl-c=) | =C-c C-c= | — | — | 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 =#+CALL:= line, inline =call_= or inline =src_= block, and refreshes the setup on a =#+= keyword line (=org-ctrl-c-ctrl-c=). In a table it evaluates a formula typed in the field (starting with ~=~ or ~:=~), then recalculates the row when it is marked =#= and otherwise aligns the table; at the table's first character it recalculates the whole table. After a sparse tree, the first =C-c C-c= only clears the highlights. More specific bindings take =C-c C-c= in src blocks, =#+TBLFM= lines and dynamic blocks. |
890| Act at Point (=org.dwim=) | — | — | =RET= (N) | Doom's =+org/dwim-at-point=: follows a link, runs a src block, recalculates or aligns a table, toggles a checkbox, or switches a heading between TODO and done. | 897| Act at Point (=org.dwim=) | — | — | =RET= (N) | Doom's =+org/dwim-at-point=: follows a link, runs a src block, recalculates or aligns a table, toggles a checkbox, or switches a heading between TODO and done. |
891| Run Source Block (=org.babel.execute=) | =C-c C-c= | — | — | In a src block, runs it and inserts the results (=org-babel-execute-src-block=). | 898| Run Source Block (=org.babel.execute=) | =C-c C-c= | — | — | In a src block, runs it and inserts the results (=org-babel-execute-src-block=). |
892| Tangle File (=org.babel.tangle=) | =C-c C-v t=, =C-c C-v C-t= | — | — | Writes the file's src blocks to their tangle targets (=org-babel-tangle=). | 899| Tangle File (=org.babel.tangle=) | =C-c C-v t=, =C-c C-v C-t= | — | — | Writes the file's src blocks to their tangle targets (=org-babel-tangle=). |
@@ -904,7 +911,6 @@ When a key appears in several rows, it runs the command whose condition holds at
904 911
905| Command | Emacs | Mac | Doom | What it does | 912| Command | Emacs | Mac | Doom | What it does |
906|-+-+-+-+-| 913|-+-+-+-+-|
907| Export… (=app.export-dialog=) | =C-c C-e= | — | — | Opens the export sheet (=org-export-dispatch=). |
908| Export to HTML (=app.export.html=) | =C-c C-e h h= | — | =SPC m e h h= (N) | Exports to HTML (=org-html-export-to-html=). | 914| Export to HTML (=app.export.html=) | =C-c C-e h h= | — | =SPC m e h h= (N) | Exports to HTML (=org-html-export-to-html=). |
909| Export to HTML and Open (=app.export.html-open=) | =C-c C-e h o= | — | =SPC m e h o= (N) | Exports to HTML and opens the result. | 915| Export to HTML and Open (=app.export.html-open=) | =C-c C-e h o= | — | =SPC m e h o= (N) | Exports to HTML and opens the result. |
910| Export to Markdown (=app.export.markdown=) | =C-c C-e m m= | — | =SPC m e m m= (N) | Exports to Markdown (=org-md-export-to-markdown=). | 916| Export to Markdown (=app.export.markdown=) | =C-c C-e m m= | — | =SPC m e m m= (N) | Exports to Markdown (=org-md-export-to-markdown=). |
@@ -943,15 +949,16 @@ No preset binds these. Run them from the palette or a menu, or bind them in =key
943| Board (=app.board=) | Opens the Board window. Window ▸ Board, =⇧⌘B=. | 949| Board (=app.board=) | Opens the Board window. Window ▸ Board, =⇧⌘B=. |
944| Cancel Running Block (=app.babel.cancel=) | Stops the src block that is running. Edit ▸ Cancel Running Block, =⌘.=. | 950| Cancel Running Block (=app.babel.cancel=) | Stops the src block that is running. Edit ▸ Cancel Running Block, =⌘.=. |
945| Edit Config File (=app.edit-config=) | Opens =config.toml= in the editor. =⌥⌘,=. | 951| Edit Config File (=app.edit-config=) | Opens =config.toml= in the editor. =⌥⌘,=. |
952| Export… (=app.export-dialog=) | Opens the export sheet. In the Emacs and Doom presets =C-c C-e= is a prefix for the export keys only; pausing after it lists them in the key hints. |
946| Import from Emacs… (=app.import-emacs=) | Opens Import from Emacs…. | 953| Import from Emacs… (=app.import-emacs=) | Opens Import from Emacs…. |
947| Revert to File on Disk (=app.revert=) | Replaces the buffer with the file on disk; unsaved changes go to recovery (=revert-buffer=). | 954| Revert to File on Disk (=app.revert=) | Replaces the buffer with the file on disk; unsaved changes go to recovery (=revert-buffer=). |
948| Recovery Versions… (=app.recovery=) | Shows the recovery versions of the file. | 955| Recovery Versions… (=app.recovery=) | Shows the recovery versions of the file. |
949| Resolve Sync Conflicts… (=app.sync-conflicts=) | Shows the file's sync conflict copies to resolve them. | 956| Resolve Sync Conflicts… (=app.sync-conflicts=) | Shows the file's sync conflict copies to resolve them. |
950| Import Table from File… (=app.table-import=) | Asks for a CSV, TSV or space-separated file and inserts it as a table (=org-table-import=). | 957| Import Table from File… (=app.table-import=) | Asks for a CSV, TSV or space-separated file and inserts it as a table (=org-table-import=). |
951| Export Table to File… (=app.table-export=) | Writes the table at point to a CSV or TSV file (=org-table-export=). | 958| Export Table to File… (=app.table-export=) | Writes the table at point to a CSV or TSV file (=org-table-export=). |
952| Show or Hide Outline (=app.toggle-outline=) | Shows or hides the outline pane. View ▸ Show or Hide Outline. | 959| Show or Hide Outline (=app.toggle-outline=) | Shows or hides the outline pane. View ▸ Show or Hide Outline, =⌥⌘O=. |
953| Show or Hide Backlinks (=app.toggle-backlinks=) | Shows or hides the backlinks pane. View ▸ Show or Hide Backlinks. | 960| Show or Hide Backlinks (=app.toggle-backlinks=) | Shows or hides the backlinks pane. View ▸ Show or Hide Backlinks. |
954| Show or Hide Columns and Clock (=app.toggle-inspector=) | Shows or hides the columns and clock inspector. | 961| Show or Hide Columns and Clock (=app.toggle-inspector=) | Shows or hides the columns and clock inspector. View ▸ Show or Hide Columns and Clock, =⌥⌘I=. |
955| Show or Hide Markup (=app.toggle-markup=) | Shows or hides link brackets and emphasis markers. View ▸ Show Markup, =⇧⌘M=. | 962| Show or Hide Markup (=app.toggle-markup=) | Shows or hides link brackets and emphasis markers. View ▸ Show Markup, =⇧⌘M=. |
956| Show or Hide Line Numbers (=app.toggle-line-numbers=) | Shows or hides line numbers. View ▸ Show Line Numbers, =⇧⌘L=. | 963| Show or Hide Line Numbers (=app.toggle-line-numbers=) | Shows or hides line numbers. View ▸ Show Line Numbers, =⇧⌘L=. |
957| Show or Hide Tab Bar (=app.toggle-tab-bar=) | Shows or hides the tab bar. View ▸ Show Tab Bar. | 964| Show or Hide Tab Bar (=app.toggle-tab-bar=) | Shows or hides the tab bar. View ▸ Show Tab Bar. |
@@ -960,7 +967,7 @@ No preset binds these. Run them from the palette or a menu, or bind them in =key
960| Column View of File (=org.columns.global=) | Shows the column view of the whole file (=org-columns= with =C-u=). | 967| Column View of File (=org.columns.global=) | Shows the column view of the whole file (=org-columns= with =C-u=). |
961| Remove Schedule (=org.schedule.remove=) | Removes =SCHEDULED= (=org-schedule= with =C-u=). | 968| Remove Schedule (=org.schedule.remove=) | Removes =SCHEDULED= (=org-schedule= with =C-u=). |
962| Remove Deadline (=org.deadline.remove=) | Removes =DEADLINE= (=org-deadline= with =C-u=). | 969| Remove Deadline (=org.deadline.remove=) | Removes =DEADLINE= (=org-deadline= with =C-u=). |
963| Create ID (=org.id.create=) | Gives the entry an =ID= property unless it has one (=org-id-get-create=). | 970| Create ID (=org.id.create=) | Gives the entry an =ID= property, a lowercase UUID, unless it has one (=org-id-get-create=). |
964| Delete Property… (=org.property.delete=) | Asks for a property of the entry and deletes it (=org-delete-property=). | 971| Delete Property… (=org.property.delete=) | Asks for a property of the entry and deletes it (=org-delete-property=). |
965| Delete Property Everywhere… (=org.property.delete-globally=) | Asks for a property and deletes it from every entry in the file (=org-delete-property-globally=). | 972| Delete Property Everywhere… (=org.property.delete-globally=) | Asks for a property and deletes it from every entry in the file (=org-delete-property-globally=). |
966| Property Action… (=org.property.action=) | Offers set, delete and delete globally for the property at point (=org-property-action=). =C-c C-c= in a property drawer runs it. | 973| Property Action… (=org.property.action=) | Offers set, delete and delete globally for the property at point (=org-property-action=). =C-c C-c= in a property drawer runs it. |
docs/manual/guide/04-outlines.org +9 −4
@@ -122,13 +122,16 @@ lines they do nothing. Orgstar has no =org-drag-element= for paragraphs.
122|--------------------------------+-----------------------------------+-----------+--------+-------------------| 122|--------------------------------+-----------------------------------+-----------+--------+-------------------|
123| Next Heading | =org-next-visible-heading= | =C-c C-n= | =⌥⌘↓= | =C-c C-n= | 123| Next Heading | =org-next-visible-heading= | =C-c C-n= | =⌥⌘↓= | =C-c C-n= |
124| Previous Heading | =org-previous-visible-heading= | =C-c C-p= | =⌥⌘↑= | =C-c C-p= | 124| Previous Heading | =org-previous-visible-heading= | =C-c C-p= | =⌥⌘↑= | =C-c C-p= |
125| Next Heading at Same Level | =org-forward-heading-same-level= | =C-c C-f= | menu | =g j=, =] h= | 125| Next Heading at Same Level | =org-forward-heading-same-level= | =C-c C-f= | menu | =] h= |
126| Previous Heading at Same Level | =org-backward-heading-same-level= | =C-c C-b= | menu | =g k=, =[ h= | 126| Previous Heading at Same Level | =org-backward-heading-same-level= | =C-c C-b= | menu | =[ h= |
127| Up to Parent Heading | =outline-up-heading= | =C-c C-u= | menu | =g h= | 127| Up to Parent Heading | =outline-up-heading= | =C-c C-u= | menu | =g h= |
128| Go to Heading… | =org-goto= | =C-c C-j= | menu | =SPC m .= | 128| Go to Heading… | =org-goto= | =C-c C-j= | menu | =SPC m .= |
129 129
130Next and Previous Heading skip headings that are folded out of sight. The same-level 130Next and Previous Heading skip headings that are folded out of sight. The same-level
131commands stop at the parent's boundary. Go to Heading asks for a heading by its outline 131commands stop at the parent's boundary. In Doom's normal state, =gj= and =gk= move by
132Org element, as evil-org's =org-forward-element= and =org-backward-element=: on a
133heading line, to the next heading after its subtree, or to the previous heading at the
134same level or higher (see [[file:03-keys.org][Keys and commands]]). Go to Heading asks for a heading by its outline
132path (=Project/Meetings/Kickoff=) with completion, as =org-goto= does with 135path (=Project/Meetings/Kickoff=) with completion, as =org-goto= does with
133=outline-path-completion=. 136=outline-path-completion=.
134 137
@@ -696,7 +699,9 @@ Footnote Action depends on where the caret is:
696 number and creates its definition. 699 number and creates its definition.
697- Where a footnote can't go, it shows the footnote menu. 700- Where a footnote can't go, it shows the footnote menu.
698 701
699=C-c C-c= on a reference or a definition's label does the same jumps. 702=C-c C-c= on a reference or a definition's label does the same jumps. After a jump to a
703definition, the echo area says how to get back:
704=Edit definition and go back with `C-c C-c' or `C-c C-x f' on its label.=
700 705
701New definitions go in a level 1 heading named =Footnotes= at the end of the file, which 706New definitions go in a level 1 heading named =Footnotes= at the end of the file, which
702is created when needed (Org's =org-footnote-section=): 707is created when needed (Org's =org-footnote-section=):
docs/manual/guide/05-todos-and-tags.org +3 −3
@@ -36,7 +36,7 @@ A file can set its own keywords, which replace the default ones for that file:
36 36
37- Each line is one sequence. =#+SEQ_TODO= means the same as =#+TODO=. 37- Each line is one sequence. =#+SEQ_TODO= means the same as =#+TODO=.
38- Without a =|=, the last word is the done keyword. 38- Without a =|=, the last word is the done keyword.
39- =#+TYP_TODO= marks a sequence of types (=org-todo-interpretation= =type=). The only difference Orgstar makes is in repeating tasks: a repeating entry returns to the keyword it had before it was done, instead of to the first keyword of the sequence. 39- =#+TYP_TODO= marks a sequence of types (=org-todo-interpretation= =type=). Cycling with =C-c C-t= from a type keyword goes to the sequence's first done keyword (see /Cycling/), and a repeating entry returns to the keyword it had before it was done, instead of to the first keyword of the sequence.
40- The order of sequences is the order Org uses: =#+TYP_TODO= lines first, then =#+TODO=, then =#+SEQ_TODO=. 40- The order of sequences is the order Org uses: =#+TYP_TODO= lines first, then =#+TODO=, then =#+SEQ_TODO=.
41- Lines inside blocks are ignored. Lines from a =#+SETUPFILE= count as if they came first in the file. 41- Lines inside blocks are ignored. Lines from a =#+SETUPFILE= count as if they came first in the file.
42 42
@@ -73,7 +73,7 @@ With speed commands on (=org-use-speed-commands=), =t= at the start of a heading
73=C-c C-t= behaves in one of two ways: 73=C-c C-t= behaves in one of two ways:
74 74
75- If any keyword in the file has a fast-selection key, it opens fast selection (=org-use-fast-todo-selection= =auto=). The default keywords all have keys, so this is what you get unless you define keywords without keys. 75- If any keyword in the file has a fast-selection key, it opens fast selection (=org-use-fast-todo-selection= =auto=). The default keywords all have keys, so this is what you get unless you define keywords without keys.
76- Otherwise it cycles: no keyword, then each keyword of the first sequence in order, then no keyword again. From a keyword in another sequence it moves through that sequence and then to no keyword. 76- Otherwise it cycles: no keyword, then each keyword of the first sequence in order, then no keyword again. From a keyword in another sequence it moves through that sequence and then to no keyword. From a =#+TYP_TODO= keyword it goes straight to the sequence's first done keyword, as Org does; pressing =C-c C-t= again right away moves to the next type keyword instead. In the iOS app and the agenda, each press on a type keyword goes to the done keyword.
77 77
78=S-<right>= and =S-<left>= never use fast selection. They step through every keyword of every sequence in order, then to no keyword, and wrap around. 78=S-<right>= and =S-<left>= never use fast selection. They step through every keyword of every sequence in order, then to no keyword, and wrap around.
79 79
@@ -224,7 +224,7 @@ A tag consists of letters, digits, =_=, =@=, =#= and =%=.
224 224
225| Command | Org command | Emacs, Doom | Mac | Doom leader | 225| Command | Org command | Emacs, Doom | Mac | Doom leader |
226|-----------+---------------------------+---------------+-------+-------------| 226|-----------+---------------------------+---------------+-------+-------------|
227| Set Tags | =org-set-tags-command= | =C-c C-q= | ⌃⌘Q | =SPC m q= | 227| Set Tags | =org-set-tags-command= | =C-c C-q= | ⌃⌘G | =SPC m q= |
228 228
229=C-c C-c= on a heading line also runs Set Tags, and so does =:= as a speed command. 229=C-c C-c= on a heading line also runs Set Tags, and so does =:= as a speed command.
230 230
docs/manual/guide/06-dates-and-clocking.org +6 −4
@@ -61,7 +61,7 @@ Org's prefix arguments are not available: to include the current time, type it,
61 61
62Every command that asks for a date shows the same prompt (=org-read-date=): a text field, the date the text reads as, and a month calendar. 62Every command that asks for a date shows the same prompt (=org-read-date=): a text field, the date the text reads as, and a month calendar.
63 63
64- Type a date in any of the forms below. The line above the field shows the result, such as =<2026-10-09 Fri 15:00>=, as you type. 64- Type a date in any of the forms below. The line above the field shows the result, such as =<2026-10-09 Fri 15:00>=, as you type; for an inactive timestamp it is in square brackets, =[2026-10-09 Fri 15:00]=.
65- Click a day in the calendar to answer with that day. A time you typed is kept. 65- Click a day in the calendar to answer with that day. A time you typed is kept.
66- =S-<left>= and =S-<right>= in the field move the answer one day; =S-<up>= and =S-<down>= move it one week. 66- =S-<left>= and =S-<right>= in the field move the answer one day; =S-<up>= and =S-<down>= move it one week.
67- =RET= accepts. An empty answer takes the default: the date of the timestamp being changed, or today. 67- =RET= accepts. An empty answer takes the default: the date of the timestamp being changed, or today.
@@ -138,7 +138,7 @@ DEADLINE: <2026-10-31 Sat -7d> SCHEDULED: <2026-10-20 Tue>
138| Command | Org command | Emacs, Doom | Mac | Doom leader | 138| Command | Org command | Emacs, Doom | Mac | Doom leader |
139|------------------+------------------+-------------+------+-------------| 139|------------------+------------------+-------------+------+-------------|
140| Schedule | =org-schedule= | =C-c C-s= | ⌃⌘S | =SPC m d s= | 140| Schedule | =org-schedule= | =C-c C-s= | ⌃⌘S | =SPC m d s= |
141| Set Deadline | =org-deadline= | =C-c C-d= | ⌃⌘D | =SPC m d d= | 141| Set Deadline | =org-deadline= | =C-c C-d= | ⌃⌘E | =SPC m d d= |
142| Remove Schedule | =C-u C-c C-s= | | | | 142| Remove Schedule | =C-u C-c C-s= | | | |
143| Remove Deadline | =C-u C-c C-d= | | | | 143| Remove Deadline | =C-u C-c C-d= | | | |
144 144
@@ -165,7 +165,7 @@ When an entry with a repeater in an active timestamp changes from an active TODO
1655. Every active timestamp with a repeater in the entry moves forward: 1655. Every active timestamp with a repeater in the entry moves forward:
166 - =+N= moves it by N once, which may leave it in the past. 166 - =+N= moves it by N once, which may leave it in the past.
167 - =++N= moves it by N until it is after today (for hours, after now). 167 - =++N= moves it by N until it is after today (for hours, after now).
168 - =.+N= sets it to today and then moves it by N. 168 - =.+N= sets it to today and then moves it by N. With hours, =.+Nh=, the new time is N hours after the current time, to the minute, and a time range loses its end time.
1696. =--= delays in those timestamps are removed. 1696. =--= delays in those timestamps are removed.
170 170
171#+BEGIN_SRC org 171#+BEGIN_SRC org
@@ -257,7 +257,9 @@ The time shown is the time since you clocked in, not the entry's total. Each of
257 257
258** Editing clock lines 258** Editing clock lines
259 259
260You can edit clock lines by hand. =S-<up>= and =S-<down>= change their timestamps as anywhere else, but do not update the duration after ~=>~. Press =C-c C-c= (or =C-c C-y=) on the line afterwards: Orgstar fixes both day names and writes the duration again (=org-clock-update-time-maybe=). 260You can edit clock lines by hand. =S-<up>=, =S-<down>=, =S-<left>= and =S-<right>= change their timestamps as anywhere else, and then write the duration after ~=>~ again, as =H:MM=. After typing changes yourself, press =C-c C-c= (or =C-c C-y=) on the line: Orgstar fixes both day names and writes the duration again (=org-clock-update-time-maybe=).
261
262=C-c .= with the caret on the =--= between the two timestamps of a clock line inserts a new timestamp there. Emacs replaces the second timestamp instead.
261 263
262A line of the form ~CLOCK: => 1:15~, with only a duration, counts towards clock tables. 264A line of the form ~CLOCK: => 1:15~, with only a duration, counts towards clock tables.
263 265
docs/manual/guide/07-agenda.org +5 −2
@@ -49,7 +49,7 @@ The default view is =org-agenda-list=: a run of days, each with a header such as
49 49
50| Setting | Default | =config.toml= | Range in Settings | 50| Setting | Default | =config.toml= | Range in Settings |
51|------------------------------+---------+-----------------------------------+-------------------| 51|------------------------------+---------+-----------------------------------+-------------------|
52| Days shown | 10 | =org-agenda-span = 10= | 1 to 31 | 52| Days shown | 10 | =org-agenda-span = 10= | 1 to 366 |
53| First day, relative to today | 3 days before | =org-agenda-start-day = "-3d"= | 0 to 14 days before | 53| First day, relative to today | 3 days before | =org-agenda-start-day = "-3d"= | 0 to 14 days before |
54 54
55Both mirror the Emacs variables of the same name. The defaults are Doom's values, not plain Emacs's (a week starting today). =org-agenda-start-day= takes only day offsets such as ="-3d"= or ="+0d"=. There are no day, week or month view keys (=d=, =w=, =m= in Emacs) and no =org-agenda-start-on-weekday=: the span is a number of days and always begins at the configured offset. 55Both mirror the Emacs variables of the same name. The defaults are Doom's values, not plain Emacs's (a week starting today). =org-agenda-start-day= takes only day offsets such as ="-3d"= or ="+0d"=. There are no day, week or month view keys (=d=, =w=, =m= in Emacs) and no =org-agenda-start-on-weekday=: the span is a number of days and always begins at the configured offset.
@@ -326,6 +326,8 @@ The combined filter =/= reads terms such as:
326 326
327With two or more =+= categories, a line may have any of them. Tag terms all have to hold. 327With two or more =+= categories, a line may have any of them. Tag terms all have to hold.
328 328
329The =/= prompt starts with the whole current filter written in this form, every term with its sign: categories, then tags, efforts and regexps, with categories that contain =-= in quotes. Pressing =Return= on it unchanged keeps the same filter.
330
329The =\= prompt reads every word as a tag, whether or not a line has it; there, ={regexp}= matches any tag that matches the regexp. The === prompt takes one regexp, with a leading =-= to drop matches. The =_= prompt takes one comparison such as =<0:30=. 331The =\= prompt reads every word as a tag, whether or not a line has it; there, ={regexp}= matches any tag that matches the regexp. The === prompt takes one regexp, with a leading =-= to drop matches. The =_= prompt takes one comparison such as =<0:30=.
330 332
331* The prefix and line layout 333* The prefix and line layout
@@ -351,6 +353,7 @@ These are the defaults. =agenda= applies to the day view, =todo= to the TODO lis
351| =%e= | The =Effort= property | 353| =%e= | The =Effort= property |
352| =%l= | One space per heading level | 354| =%l= | One space per heading level |
353| =%b= | The outline path above the heading, each title followed by =->= | 355| =%b= | The outline path above the heading, each title followed by =->= |
356| =%T= | The item's last tag, counting inherited tags |
354| =%i= | The category icon; always empty in Orgstar | 357| =%i= | The category icon; always empty in Orgstar |
355 358
356Each field takes Org's modifiers: =%-12c= pads to 12 columns on the right (=%12c= on the left); =%-12.6c= limits a category to 5 characters; =%?t= leaves the field out entirely when empty; a punctuation character after the width (=%-12:c=) is added after a non-empty value. When the format contains =%t=, times move out of the heading text into the prefix, as =org-agenda-remove-times-when-in-prefix= does. =%(…)= Lisp forms are accepted but always empty. 359Each field takes Org's modifiers: =%-12c= pads to 12 columns on the right (=%12c= on the left); =%-12.6c= limits a category to 5 characters; =%?t= leaves the field out entirely when empty; a punctuation character after the width (=%-12:c=) is added after a non-empty value. When the format contains =%t=, times move out of the heading text into the prefix, as =org-agenda-remove-times-when-in-prefix= does. =%(…)= Lisp forms are accepted but always empty.
@@ -439,7 +442,7 @@ The Agenda tab shows the same views from the same files, using the settings in t
439- The Views menu lists the built-in views, your saved views, and Tags and Properties…, which asks for a match string. There is no TODO-only match from the menu; use =/!= in the match or a =todo-match= view. Today, Earlier and Later are in the same menu. 442- The Views menu lists the built-in views, your saved views, and Tags and Properties…, which asks for a match string. There is no TODO-only match from the menu; use =/!= in the match or a =todo-match= view. Today, Earlier and Later are in the same menu.
440- Pull down to refresh. 443- Pull down to refresh.
441- The Filter button opens a sheet: type a filter as for =/=, or tap a tag or category to cycle between Keep, Leave out and no filter. 444- The Filter button opens a sheet: type a filter as for =/=, or tap a tag or category to cycle between Keep, Leave out and no filter.
442- Tap an entry to open it. Swipe left on an open TODO to mark it done with the first done keyword of its sequence. 445- Tap an entry to open it. Swipe left on an open TODO to mark it done with the first done keyword of its sequence, as the file defines its keywords: the default keywords from =config.toml=, the file's own =#+TODO= lines, and those of its setup files, with unsaved edits in an open buffer included.
443- Touch and hold an entry for TODO State…, Schedule…, Deadline…, Tags…, Priority…, Clock In, Refile… and Archive…. 446- Touch and hold an entry for TODO State…, Schedule…, Deadline…, Tags…, Priority…, Clock In, Refile… and Archive….
444- There are no keyboard commands, time grid lines, habit graphs, log mode, bulk marks or custom prefix formats. 447- There are no keyboard commands, time grid lines, habit graphs, log mode, bulk marks or custom prefix formats.
445- Reminders are set while the app is open. iOS allows at most 64 pending notifications and the app can't add more while it isn't running, so the agenda's footer says how far ahead they go and asks you to open Orgstar to set later ones. 448- Reminders are set while the app is open. iOS allows at most 64 pending notifications and the app can't add more while it isn't running, so the agenda's footer says how far ahead they go and asks you to open Orgstar to set later ones.
docs/manual/guide/08-capture.org +5 −5
@@ -27,7 +27,7 @@ Captures can also arrive from a browser through org-protocol, from Shortcuts, an
27 27
28A capture goes through up to three steps. 28A capture goes through up to three steps.
29 29
301. *Choose a template.* The window lists your templates with their keys and targets. Press a template's key, or click it. 301. *Choose a template.* The window lists your templates with their keys and targets. Type a template's key, or click it. For a key of several characters, such as =wb=, each character you type narrows the list to the templates whose keys start with what you typed, and the header shows the keys so far (=Capture: w=). =Delete= removes the last key typed. The template is chosen as soon as the keys match one.
312. *Answer its questions.* If the template has prompts (=%^{…}=, =%^g=, =%^t= and the others below), they appear as a form. Leave a field empty for its default. Press Return (Continue) to go on. 312. *Answer its questions.* If the template has prompts (=%^{…}=, =%^g=, =%^t= and the others below), they appear as a form. Leave a field empty for its default. Press Return (Continue) to go on.
323. *Edit and file.* The filled template appears in an editor, headed with the template's name and target, with the cursor where =%?= was. Press =⌘Return= (File It) to file it. 323. *Edit and file.* The filled template appears in an editor, headed with the template's name and target, with the cursor where =%?= was. Press =⌘Return= (File It) to file it.
33 33
@@ -35,7 +35,7 @@ Press Esc (Cancel) at any step to close the window without filing anything, as =
35 35
36Filing, the equivalent of =org-capture-finalize=, places the text in its target and saves it through the open buffer if the file is open, or into the file otherwise. A target file that doesn't exist is created, with its folders. The status line in the main window then says where the entry went. 36Filing, the equivalent of =org-capture-finalize=, places the text in its target and saves it through the open buffer if the file is open, or into the file otherwise. A target file that doesn't exist is created, with its folders. The status line in the main window then says where the entry went.
37 37
38If filing fails, for example because a heading on an =olp= path is missing, the window stays open with your text, so you can try again after fixing the file or cancel. 38If filing fails, for example because a heading on an =olp= path is missing, the window stays open with your text and shows the error in red below it, so you can try again after fixing the file or cancel.
39 39
40Limits compared with Emacs: 40Limits compared with Emacs:
41 41
@@ -65,9 +65,9 @@ The file is read each time the capture window opens. If it doesn't exist, or non
65| =t= | Personal todo | =todo.org=, heading =Inbox= | =* TODO %?\n%i\n%a= | 65| =t= | Personal todo | =todo.org=, heading =Inbox= | =* TODO %?\n%i\n%a= |
66| =n= | Personal notes | =notes.org=, heading =Inbox= | =* %u %?\n%i\n%a= | 66| =n= | Personal notes | =notes.org=, heading =Inbox= | =* %u %?\n%i\n%a= |
67 67
68A problem in the file, such as a table without a key, shows in red under the template list; the other templates still load. 68A problem in the file, such as a table without a key, shows in red at the bottom of the window; the other templates still load.
69 69
70Templates are a flat list. A key is matched against a single key press, so a key longer than one character can only be chosen by clicking. Emacs's template groups (an entry with only a key and a description) have no equivalent. 70Templates are a flat list. Keys of several characters are typed one character at a time, as in Emacs, but Emacs's template groups (an entry with only a key and a description) have no equivalent: the list shows every template whose key starts with what you typed.
71 71
72** Keys 72** Keys
73 73
@@ -295,7 +295,7 @@ The sheet works as on the Mac, in a form:
295- Prompts appear as fields. Date prompts have a date picker; choices and tags appear as buttons, and tapping a tag adds it. 295- Prompts appear as fields. Date prompts have a date picker; choices and tags appear as buttons, and tapping a tag adds it.
296- Continue fills the template and shows the text to edit; File files it; Cancel discards it. 296- Continue fills the template and shows the text to edit; File files it; Cancel discards it.
297 297
298Differences from the Mac: there is no selection, clipboard, current file, user name or clock link to insert, so =%i= and =%a= are empty unless the capture came from a link or the share sheet, and =%c=, =%x=, =%f=, =%F=, =%n=, =%k= and =%K= are empty. An org-protocol link naming a template key that doesn't exist opens the sheet on the first template instead of reporting an error. 298Differences from the Mac: there is no selection, clipboard, current file, user name or clock link to insert, so =%i= and =%a= are empty unless the capture came from a link or the share sheet, and =%c=, =%x=, =%f=, =%F=, =%n=, =%k= and =%K= are empty. An org-protocol link naming a template key that doesn't exist opens the sheet on the first template and shows =No capture template "x"= with the key.
299 299
300** The share sheet 300** The share sheet
301 301
docs/manual/guide/09-links.org +29 −12
@@ -55,13 +55,15 @@ A message in the echo area explains a link that can't be followed.
55| =http=, =https=, =ftp=, =news=, =mailto= | =[[mailto:me@example.com]]= | Opened by macOS in your default browser or mail app. | 55| =http=, =https=, =ftp=, =news=, =mailto= | =[[mailto:me@example.com]]= | Opened by macOS in your default browser or mail app. |
56| =doi= | =[[doi:10.1000/182]]= | Opens =https://doi.org/= followed by the DOI. | 56| =doi= | =[[doi:10.1000/182]]= | Opens =https://doi.org/= followed by the DOI. |
57| =file= (also =file+sys:=, =file+emacs:=) | =[[file:notes.org::*Ideas]]= | See /File links/ below. | 57| =file= (also =file+sys:=, =file+emacs:=) | =[[file:notes.org::*Ideas]]= | See /File links/ below. |
58| =id= | =[[id:6A3C…]]= | Opens the file with the heading whose =ID= property matches, and moves to the heading. | 58| =id= | =[[id:6a3c…]]= | Opens the file with the heading whose =ID= property matches, and moves to the heading. |
59| Custom ID | =[[#setup]]= | Moves to the heading in this file whose =CUSTOM_ID= property is =setup=. | 59| Custom ID | =[[#setup]]= | Moves to the heading in this file whose =CUSTOM_ID= property is =setup=. |
60| Heading | =[[*Weekly review]]= | Moves to the heading in this file with that title. | 60| Heading | =[[*Weekly review]]= | Moves to the heading in this file with that title. |
61| Text | =[[budget table]]= | Searches this file: a =<<budget table>>= target, then =#+NAME: budget table=, then a heading. | 61| Text | =[[budget table]]= | Searches this file: a =<<budget table>>= target, then =#+NAME: budget table=, then a heading. |
62| Coderef | =[[(ref)]]= | Not supported. The echo area says so. | 62| Coderef | =[[(ref)]]= | Not supported. The echo area says so. |
63| =shell=, =elisp= | =[[shell:ls]]= | Not run. Orgstar never executes these links. | 63| =shell=, =elisp= | =[[shell:ls]]= | Not run. Orgstar never executes these links. |
64| =attachment=, =info=, =help=, others | | Not followed. The echo area says Orgstar can't open the type. | 64| =attachment= | =[[attachment:scan.pdf]]= | Opens the file in the entry's attachment folder; see /Attachment links/ below. |
65| Radio link | Text matching a =<<<radio target>>>= | Moves to the radio target. |
66| =info=, =help=, others | | Not followed. The echo area says Orgstar can't open the type. |
65 67
66The text search follows =org-link-search=. A dedicated =<<target>>= matches its words 68The text search follows =org-link-search=. A dedicated =<<target>>= matches its words
67case-insensitively, with any run of blanks between them. A heading matches when its 69case-insensitively, with any run of blanks between them. A heading matches when its
@@ -69,8 +71,9 @@ title, with statistics cookies such as =[2/5]= and a leading =COMMENT= removed,
69same words as the link, ignoring case. A search that starts with =*= looks at headings 71same words as the link, ignoring case. A search that starts with =*= looks at headings
70only. Regular-expression searches (=/re/=) are not supported. 72only. Regular-expression searches (=/re/=) are not supported.
71 73
72Following a radio link looks for a dedicated target, a name or a heading with the same 74Following a radio link moves to its =<<<radio target>>>=, matching the words without
73text. It does not jump to the =<<<radio target>>>= itself. 75regard to case, as =org-link--search-radio-target= does. When the target is gone, the
76echo area shows =No match for radio target:= and the text.
74 77
75** File links 78** File links
76 79
@@ -97,6 +100,21 @@ After =::=, a file link can carry a search option:
97| =#custom-id= | =[[file:notes.org::#setup]]= | The heading with that =CUSTOM_ID=. | 100| =#custom-id= | =[[file:notes.org::#setup]]= | The heading with that =CUSTOM_ID=. |
98| Other text | =[[file:notes.org::budget]]= | A target, a =#+NAME= or a heading, as above. | 101| Other text | =[[file:notes.org::budget]]= | A target, a =#+NAME= or a heading, as above. |
99 102
103** Attachment links
104
105An =attachment:= link names a file in the attachment folder of the entry that holds
106the link, with org-attach's default settings. Relative folders are resolved against
107the folder of the file that holds the link:
108
1091. When the entry has a =DIR= property, or the older =ATTACH_DIR=, that folder.
1102. Otherwise, for an entry with an =ID=, the first of these folders that exists:
111 =data/= followed by the ID's first two characters, =/= and the rest of the ID;
112 =data/= followed by its first six characters, =/= and the rest;
113 =data/__/=, the ID's first character, =/= and the whole ID.
114
115When the folder does not exist, the path is relative to the file's own folder. The file then opens as a =file:= link would, and
116a search option after =::= works the same way.
117
100** id links 118** id links
101 119
102=id:= links are resolved through the index, so the target heading must be in a file 120=id:= links are resolved through the index, so the target heading must be in a file
@@ -125,7 +143,7 @@ stored links. It completes from:
125 143
126- your stored links, most recent first, and their descriptions; 144- your stored links, most recent first, and their descriptions;
127- the link abbreviations defined in the file (see /Link abbreviations/); 145- the link abbreviations defined in the file (see /Link abbreviations/);
128- the link types =id=, =eww=, =rmail=, =mhe=, =irc=, =info=, =gnus=, =docview=, 146- the link types =attachment=, =id=, =eww=, =rmail=, =mhe=, =irc=, =info=, =gnus=, =docview=,
129 =bibtex=, =bbdb=, =w3m=, =doi=, =file+sys=, =file+emacs=, =shell=, =news=, =mailto=, 147 =bibtex=, =bbdb=, =w3m=, =doi=, =file+sys=, =file+emacs=, =shell=, =news=, =mailto=,
130 =https=, =http=, =ftp=, =shortdoc=, =help=, =file= and =elisp=, each followed by =:=. 148 =https=, =http=, =ftp=, =shortdoc=, =help=, =file= and =elisp=, each followed by =:=.
131 149
@@ -196,7 +214,7 @@ Org identifies headings across files with an =ID= property. Two commands manage
196| Org ▸ Store ID Link | =org-id-get-create= + =org-id-store-link= | Doom =SPC m l i=; no key in Emacs or Mac | 214| Org ▸ Store ID Link | =org-id-get-create= + =org-id-store-link= | Doom =SPC m l i=; no key in Emacs or Mac |
197 215
198Create ID gives the heading at the caret an =ID= property if it doesn't have one. The 216Create ID gives the heading at the caret an =ID= property if it doesn't have one. The
199ID is a new UUID in upper case, for example =6A3C2F9E-…=. Before the first heading, 217ID is a new UUID in lower case, for example =6a3c2f9e-…=, as =org-id-uuid= makes them. Before the first heading,
200the property goes into the file-level property drawer. 218the property goes into the file-level property drawer.
201 219
202Store ID Link does the same, then stores an =id:= link to the heading with its title 220Store ID Link does the same, then stores an =id:= link to the heading with its title
@@ -216,8 +234,7 @@ link carries that search, as =id:…::search=, which mirrors =org-id-link-use-co
216=<<<radio target>>>= makes every other occurrence of its words in the file a link, 234=<<<radio target>>>= makes every other occurrence of its words in the file a link,
217matched case-insensitively and between non-word characters. Radio links are 235matched case-insensitively and between non-word characters. Radio links are
218highlighted as links and exported as links to the target (see 236highlighted as links and exported as links to the target (see
219[[file:12-export.org][Export]]). Following one in the editor does not reach the 237[[file:12-export.org][Export]]). Following one moves to the radio target.
220radio target; see /What each link type does/.
221 238
222* Link abbreviations 239* Link abbreviations
223 240
@@ -246,7 +263,8 @@ two sections:
246- *Links to* the heading at the caret, named after that heading. 263- *Links to* the heading at the caret, named after that heading.
247- *Links to this file*. 264- *Links to this file*.
248 265
249Each row shows the linking heading and its file name. Click a row to open it. The 266Each row shows the linking heading and its file name; a link in the text before a
267file's first heading is listed under the file's name. Click a row to open it. The
250pane is shown by default and updates as you move the caret and edit. 268pane is shown by default and updates as you move the caret and edit.
251 269
252The pane looks at every org file in your sidebar folders, including unsaved changes 270The pane looks at every org file in your sidebar folders, including unsaved changes
@@ -259,9 +277,8 @@ file:
259 heading; 277 heading;
260- within the same file, =[[*Title]]=, =[[#custom-id]]= and =[[Title]]=. 278- within the same file, =[[*Title]]=, =[[#custom-id]]= and =[[Title]]=.
261 279
262Links to targets, names and line numbers are not counted. Only links inside a heading's 280Links to targets, names and line numbers are not counted. A heading's links to itself
263entry are indexed, so links in the text before a file's first heading don't appear. 281are left out.
264A heading's links to itself are left out.
265 282
266* Inline images 283* Inline images
267 284
docs/manual/guide/10-tables.org +20 −11
@@ -66,6 +66,12 @@ table command, not while you type. To align without moving, use Org ▸ Align Ta
66| Mac | Org ▸ Align Table | 66| Mac | Org ▸ Align Table |
67| Doom | =C-c C-c=, or =SPC m b a= | 67| Doom | =C-c C-c=, or =SPC m b a= |
68 68
69=C-c C-c= in a table is =org-ctrl-c-ctrl-c=, as in Emacs. It first evaluates a formula
70typed in the current field (see /Entering formulas/). Then, in a row marked =#= (see
71/Names, parameters and constants/), it recalculates that row, which also aligns the
72table; in any other row it aligns the table. With the caret at the table's very first
73character, it recalculates the whole table instead.
74
69To align every table when a file opens, set =org-startup-align-all-tables= to =true= 75To align every table when a file opens, set =org-startup-align-all-tables= to =true=
70in the config file (default =false=), or put =#+STARTUP: align= in the file; 76in the config file (default =false=), or put =#+STARTUP: align= in the file;
71=#+STARTUP: noalign= turns it off for that file. See 77=#+STARTUP: noalign= turns it off for that file. See
@@ -210,6 +216,7 @@ Rows count data lines from 1; rules don't count. Columns count from 1.
210| =@I+2= | Two data rows after the first rule. | 216| =@I+2= | Two data rows after the first rule. |
211| =@2$3= | Row 2, column 3. | 217| =@2$3= | Row 2, column 3. |
212| =$0= | The current column. | 218| =$0= | The current column. |
219| =@0= | The current row: =@0$2= is =$2=. |
213| =@#=, =$#= | The current row's or column's number, as a value. | 220| =@#=, =$#= | The current row's or column's number, as a value. |
214| =@2$1..@4$3= | A range: the fields of the rectangle, as a vector. | 221| =@2$1..@4$3= | A range: the fields of the rectangle, as a vector. |
215| =$1..$3= | Columns 1 to 3 of the current row. | 222| =$1..$3= | Columns 1 to 3 of the current row. |
@@ -289,7 +296,9 @@ so ~$3=$2/3;~ is formatted with =%.2f=.
289 folders, read from the file on disk. 296 folders, read from the file on disk.
290 297
291=REF= may use spreadsheet-style references such as =B3= (column B, row 3), which 298=REF= may use spreadsheet-style references such as =B3= (column B, row 3), which
292become =@3$2=. 299become =@3$2=. A =REF= without a row, such as =$1..$2=, reads the row of the other
300table that has the current row's number. =NAME= can itself be a reference: in
301=remote($1,@1$1)=, the current row's first field holds the table's name.
293 302
294** Calc expressions 303** Calc expressions
295 304
@@ -445,9 +454,9 @@ There are three ways to set a formula.
445 454
446*With a prompt.* =org-table-eval-formula= asks for the formula (~Column formula $N=~ 455*With a prompt.* =org-table-eval-formula= asks for the formula (~Column formula $N=~
447or ~Field formula @R$C=~) with the stored one filled in, stores it and evaluates it in 456or ~Field formula @R$C=~) with the stored one filled in, stores it and evaluates it in
448the current field. An empty answer keeps the stored formula and evaluates it again, 457the current field. Clearing the prompt and pressing =Return= removes the stored
449unlike Emacs, where an empty answer removes it. To remove a formula, delete it in the 458formula, as in Emacs, and the echo area shows =Formula removed=. You can also delete a
450formula editor below or from the =#+TBLFM:= line. 459formula in the formula editor below or from the =#+TBLFM:= line.
451 460
452| Command | Emacs | Mac | Doom | 461| Command | Emacs | Mac | Doom |
453|-------------------------------+----------+-----------------------------+----------| 462|-------------------------------+----------+-----------------------------+----------|
@@ -462,8 +471,8 @@ prefix argument; use the menu item or type ~:=~ in the field.
462grouped under =# Column Formulas=, =# Field and Range Formulas= and 471grouped under =# Column Formulas=, =# Field and Range Formulas= and
463=# Named Field Formulas=. A formula can continue on indented lines. =C-c '= or 472=# Named Field Formulas=. A formula can continue on indented lines. =C-c '= or
464=⌘Return= installs the formulas; =Escape= or =C-c C-k= leaves them unchanged. 473=⌘Return= installs the formulas; =Escape= or =C-c C-k= leaves them unchanged.
465Installing doesn't recalculate; do that next with =C-c C-c= on the =#+TBLFM:= line, or 474Installing doesn't recalculate. The echo area says so and points to Recalculate Table:
466Org ▸ Recalculate Table in the Mac preset. 475=C-c C-c= on the =#+TBLFM:= line, or Org ▸ Recalculate Table in the Mac preset.
467 476
468The formulas are stored sorted the way =org-table-formula-less-p= sorts them. 477The formulas are stored sorted the way =org-table-formula-less-p= sorts them.
469 478
@@ -486,7 +495,7 @@ the table. Formulas are evaluated once; Org's iterate-until-stable recalculation
486 495
487Tables are not recalculated automatically. Rows marked =#= are not recalculated when 496Tables are not recalculated automatically. Rows marked =#= are not recalculated when
488you press =TAB= or =RET= in them, as =org-table-maybe-recalculate-line= would do in 497you press =TAB= or =RET= in them, as =org-table-maybe-recalculate-line= would do in
489Emacs; recalculate with one of the commands above. 498Emacs; recalculate with one of the commands above, or with =C-c C-c= in the row.
490 499
491* When Emacs is needed 500* When Emacs is needed
492 501
@@ -515,10 +524,10 @@ If the table's formulas contain Lisp, Orgstar asks first:
515table's text in this file, so the question isn't asked again until the text changes. 524table's text in this file, so the question isn't asked again until the text changes.
516 525
517Entering a formula that needs Emacs with ~C-c =~, Set Field Formula or ~=~ in a field 526Entering a formula that needs Emacs with ~C-c =~, Set Field Formula or ~=~ in a field
518is not handed to Emacs. The echo area shows =The formula was stored; recalculating it 527is not handed to Emacs. The formula is stored in the =#+TBLFM:= line and the field is
519needs Emacs= and the reason, but the table and its =#+TBLFM:= line stay unchanged. 528left as it was; the echo area shows =The formula was stored; recalculating it needs
520Add such a formula in the formula editor or by editing the =#+TBLFM:= line, then 529Emacs= and the reason. =TAB= and =RET= still move to the next field. Recalculate the
521recalculate the table, which runs it in Emacs. 530table to run the formula in Emacs.
522 531
523For how Orgstar and Emacs share files, see 532For how Orgstar and Emacs share files, see
524[[file:15-alongside-emacs.org][Using Orgstar alongside Emacs]]. 533[[file:15-alongside-emacs.org][Using Orgstar alongside Emacs]].
docs/manual/guide/11-code-blocks.org +6 −6
@@ -82,7 +82,7 @@ The block's text is remembered when the run starts. If you edit the block while
82 82
83** Languages that run 83** Languages that run
84 84
85On the Mac, Orgstar starts each interpreter through =/usr/bin/env=. Because an app opened from the Dock does not see your shell's =PATH=, Orgstar adds =/opt/homebrew/bin=, =/usr/local/bin=, =/usr/bin= and =/bin= to the end of it. 85On the Mac, Orgstar starts each interpreter through =/usr/bin/env=. Because an app opened from the Dock does not see your shell's =PATH=, Orgstar adds =/opt/homebrew/bin=, =/usr/local/bin=, =/Library/TeX/texbin=, =/usr/bin= and =/bin= to the end of it.
86 86
87| Language | Program run | 87| Language | Program run |
88|------------------------------------------------------------------+-----------------------------------------------------| 88|------------------------------------------------------------------+-----------------------------------------------------|
@@ -118,11 +118,11 @@ When a block's =:var= or =:stdin= refers to other blocks that have to run first,
118 118
119| Value | Effect | 119| Value | Effect |
120|------------------------------------------+------------------------------------------------------------| 120|------------------------------------------+------------------------------------------------------------|
121| =never=, =no=, =never-export=, =no-export= | The block does not run: "Evaluation of this /language/ code block is disabled." | 121| =never=, =no= | The block does not run: "Evaluation of this /language/ code block is disabled." |
122| =query= | Asks every time, with only =yes= and =no=. A block reached through =:var= with =:eval query= makes the whole chain ask every time. | 122| =query= | Asks every time, with only =yes= and =no=. A block reached through =:var= with =:eval query= makes the whole chain ask every time. |
123| anything else, or absent | Runs after the trust prompt. | 123| anything else, or absent | Runs after the trust prompt. |
124 124
125Orgstar does not export by running blocks, so =never-export= and =no-export= also stop the block from running interactively. In Org these two values only stop evaluation during export. 125=never-export= and =no-export= only stop evaluation during export in Org. Orgstar does not run blocks during export, so with these values the block runs from =C-c C-c= like any other.
126 126
127** Cancelling a run 127** Cancelling a run
128 128
@@ -257,7 +257,7 @@ Orgstar merges header arguments in this order, each layer overriding the ones be
2574. =#+HEADER:= lines above the block. 2574. =#+HEADER:= lines above the block.
2585. For a call, the call's arguments (see Calls below). 2585. For a call, the call's arguments (see Calls below).
259 259
260A property written with a =+=, such as =header-args+=, adds to the value inherited from above instead of replacing it. 260A property written with a =+=, such as =header-args+=, adds to the value inherited from above instead of replacing it. In a property drawer, =:header-args:sh:= is one property name, so its value applies only to =sh= blocks.
261 261
262#+BEGIN_SRC org 262#+BEGIN_SRC org
263,#+PROPERTY: header-args :results output 263,#+PROPERTY: header-args :results output
@@ -522,7 +522,7 @@ Text src_sh{echo hi} {{{results(=hi=)}}} end.
522 522
523Running again replaces the macro. With =:results raw= the result goes in as it is, without the macro. An inline result must be one line, and a table result must be a single cell. 523Running again replaces the macro. With =:results raw= the result goes in as it is, without the macro. An inline result must be one line, and a table result must be a single cell.
524 524
525An inline call, =call_double(n=6)=, has the same parts as a =#+CALL:= line: =call_name[inside](arguments)[end]=. Orgstar reads inline calls and writes their results the same way as inline blocks, but =C-c C-c= on an inline call does not run it. Use a =#+CALL:= line instead. 525An inline call, =call_double(n=6)=, has the same parts as a =#+CALL:= line: =call_name[inside](arguments)[end]=. =C-c C-c= on an inline call runs it, and its result is written after it as a =results= macro, as for inline blocks.
526 526
527* Emacs Lisp blocks 527* Emacs Lisp blocks
528 528
@@ -570,7 +570,7 @@ All three are in the Org menu and the command palette. The Mac preset has no key
570| =:tangle= | Target | 570| =:tangle= | Target |
571|-------------------+-------------------------------------------------------------------------------------------------| 571|-------------------+-------------------------------------------------------------------------------------------------|
572| =no= (default) | Not tangled. | 572| =no= (default) | Not tangled. |
573| =yes= | The Org file's name with the language as extension: =el= for =emacs-lisp= and =elisp=, =bib= for =bibtex=, otherwise the language name itself (=notes.sh= for =sh=, =notes.python= for =python=). | 573| =yes= | The Org file's name with the language's extension, as Org's language files define it (=org-babel-tangle-lang-exts=): =py= for =python=, =rb= for =ruby=, =pl= for =perl=, =cpp= for =C++=, =d= for =D=, =awk=, =sed=, =lua=, =hs= for =haskell=, =java=, =tex= for =latex=, =ly= for =LilyPond=, =F90= for =fortran=, =clj= for =clojure=, =cljs= for =clojurescript=, =cs= for =csharp=, =groovy=, =jl= for =julia=, =lisp=, =max= for =maxima=, =ml= for =ocaml=, =pde= for =processing=, =el= for =emacs-lisp= and =elisp=, and =bib= for =bibtex=. Any other language is its own extension (=notes.sh= for =sh=). |
574| a path | That file, relative to the Org file's folder. =~= is expanded. | 574| a path | That file, relative to the Org file's folder. =~= is expanded. |
575| Lisp | Evaluated as described under Lisp in header values, with =buffer-file-name= set to the Org file. | 575| Lisp | Evaluated as described under Lisp in header values, with =buffer-file-name= set to the Org file. |
576 576
docs/manual/guide/12-export.org +11 −9
@@ -18,13 +18,13 @@ Export works on the file in the current editor, using its text as it is now, sav
18| ODT | Export to ODT with Emacs | =C-c C-e o o= | =C-c C-e o o= | yes | 18| ODT | Export to ODT with Emacs | =C-c C-e o o= | =C-c C-e o o= | yes |
19| Plain text | Export to Plain Text with Emacs | =C-c C-e t u= | =C-c C-e t u= | yes | 19| Plain text | Export to Plain Text with Emacs | =C-c C-e t u= | =C-c C-e t u= | yes |
20 20
21The keys follow Emacs's export dispatcher (=org-export-dispatch=). The =SPC m e= keys work in normal state; the =C-c C-e= keys work in every Doom state. The Mac preset has no export keys. 21The keys follow Emacs's export dispatcher (=org-export-dispatch=). =C-c C-e= on its own is only a prefix: pause after it and the key hints list the formats. The =SPC m e= keys work in normal state; the =C-c C-e= keys work in every Doom state. The Mac preset has no export keys.
22 22
23All seven commands are in File ▸ Export and in the command palette. They write the export beside the Org file, with the same name and the format's extension: =.html=, =.md=, =.pdf=, =.tex=, =.odt= or =.txt=. A file already there is replaced. The message area shows "Exported to /name/". 23All seven commands are in File ▸ Export and in the command palette. They write the export beside the Org file, with the same name and the format's extension: =.html=, =.md=, =.pdf=, =.tex=, =.odt= or =.txt=. A file already there is replaced. The message area shows "Exported to /name/".
24 24
25** The export dialog 25** The export dialog
26 26
27The command palette's *Export…* opens a dialog with: 27*Export…* in the command palette opens a dialog. No preset binds it to a key; bind =app.export-dialog= in =keymap.toml= if you want one (see [[file:03-keys.org][Keys and commands]]). The dialog has:
28 28
29- *Format*: HTML, Markdown, PDF (Emacs), ODT (Emacs), LaTeX (Emacs) or Plain text (Emacs). 29- *Format*: HTML, Markdown, PDF (Emacs), ODT (Emacs), LaTeX (Emacs) or Plain text (Emacs).
30- *Destination*: beside the Org file by default. *Choose…* picks another place and name. Changing the format changes the extension. 30- *Destination*: beside the Org file by default. *Choose…* picks another place and name. Changing the format changes the extension.
@@ -125,6 +125,8 @@ A file that cannot be read is replaced by an empty line.
125| ={{{title}}}=, ={{{author}}}=, ={{{date}}}=, ={{{email}}}= | That keyword's value. | 125| ={{{title}}}=, ={{{author}}}=, ={{{date}}}=, ={{{email}}}= | That keyword's value. |
126| ={{{keyword(NAME)}}}= | The value of =#+NAME:=. | 126| ={{{keyword(NAME)}}}= | The value of =#+NAME:=. |
127| ={{{input-file}}}= | The Org file's name. | 127| ={{{input-file}}}= | The Org file's name. |
128| ={{{property(NAME)}}}= | The value of property =NAME= of the entry the macro is in; =ITEM= gives the heading's title. Empty before the first heading. |
129| ={{{property(NAME,SEARCH)}}}= | The same for the entry =SEARCH= finds in this file: =*Title=, =#custom-id= or a title. |
128| ={{{n}}}=, ={{{n(name)}}}= | A counter, increased at each use. =n(name,-)= repeats the current value; =n(name,5)= sets it to 5. | 130| ={{{n}}}=, ={{{n(name)}}}= | A counter, increased at each use. =n(name,-)= repeats the current value; =n(name,5)= sets it to 5. |
129| ={{{time(format)}}}= | The current time, formatted as =format-time-string= does. | 131| ={{{time(format)}}}= | The current time, formatted as =format-time-string= does. |
130 132
@@ -152,16 +154,16 @@ Links to =.org= files point to the =.html= file of the same name. Links to headi
152 154
153A source block is exported as =<pre><code class="language-LANG">=, with the code escaped and its common indentation removed. Orgstar does not color the code; the class lets a script or stylesheet in =#+HTML_HEAD= highlight it. Noweb references are shown as written. Line-number switches are ignored. 155A source block is exported as =<pre><code class="language-LANG">=, with the code escaped and its common indentation removed. Orgstar does not color the code; the class lets a script or stylesheet in =#+HTML_HEAD= highlight it. Noweb references are shown as written. Line-number switches are ignored.
154 156
155The block's =:exports= argument decides what appears. Orgstar reads it from the =#+begin_src= line only. 157The block's =:exports= header argument decides what appears. Orgstar resolves it as running the block would: from the =#+begin_src= line, =#+HEADER:= lines, =header-args= properties and =#+PROPERTY:= lines (see [[file:11-code-blocks.org][Code blocks]]). Without one, it is =results= for =dot=, =plantuml=, =ditaa=, =gnuplot=, =latex= and =lilypond= blocks, as their Org defaults set it, and =code= for other languages.
156 158
157| =:exports= | Exported | 159| =:exports= | Exported |
158|------------------+-------------------------------------------| 160|------------------+-------------------------------------------|
159| =code= (default) | The code. | 161| =code= | The code. |
160| =results= | The block's existing =#+RESULTS:=. | 162| =results= | The block's existing =#+RESULTS:=. |
161| =both= | The code, then the results. | 163| =both= | The code, then the results. |
162| =none= | Nothing. | 164| =none= | Nothing. |
163 165
164An inline =src_= block is exported as its code in =<code>=. Results of =#+CALL:= lines and inline blocks are not exported. 166A =#+CALL:= line exports its existing results, never the call itself; =:exports code= or =none= on the call exports nothing. An inline =src_= block has =:exports results= by default: the ={{{results(…)}}}= after it is exported and its code is not. With =:exports code= the code is exported in =<code>= and the results are not; with =both=, both. An inline =call_= exports its results the same way, and the call itself never appears.
165 167
166** Other blocks and elements 168** Other blocks and elements
167 169
@@ -193,19 +195,19 @@ HTML and Markdown export handle citations the same way; see Citations below.
193 195
194Markdown export writes GitHub-flavored Markdown: 196Markdown export writes GitHub-flavored Markdown:
195 197
196- =#+TITLE:= becomes a top =#= heading. Org headings are one level down: =*= is =##=. TODO keywords and priorities stay in the heading text, and tags are shown as inline code. 198- =#+TITLE:= becomes a top =#= heading. Org headings are one level down: =*= is =##=. TODO keywords stay in the heading text, and tags are shown as inline code. Priority cookies are left out unless =#+OPTIONS= has =pri:t=.
197- Source blocks become fenced code blocks with the language; example blocks, =: = lines and table.el tables become fenced blocks without one. 199- Source blocks become fenced code blocks with the language; example blocks, =: = lines and table.el tables become fenced blocks without one.
198- Tables become pipe tables. A rule after the first row makes it the header; otherwise the header row is empty. 200- Tables become pipe tables. A rule after the first row makes it the header; otherwise the header row is empty.
199- Checkboxes become task-list items (=- [x]=, =- [ ]=). 201- Checkboxes become task-list items (=- [x]=, =- [ ]=).
200- Footnotes become =[^1]= references with the notes at the end. 202- Footnotes become =[^1]= references with the notes at the end.
201- Quotes become =>= blocks. Verse lines end with two spaces. 203- Quotes become =>= blocks. Verse lines end with two spaces.
202- Images become =![](path)=. Links to =.org= files written without =file:= point to the =.md= file of the same name. 204- Images become =![](path)=. Links to =.org= files, with or without =file:=, point to the =.md= file of the same name; a search option after =::= is dropped.
203- =#+begin_export= blocks for =markdown=, =md= or =html=, and =@@html:…@@= snippets, are copied as they are. 205- =#+begin_export= blocks for =markdown=, =md= or =html=, and =@@html:…@@= snippets, are copied as they are.
204- Underline, subscripts and superscripts are written as HTML tags. 206- Underline, subscripts and superscripts are written as HTML tags.
205- =:exports= is handled as in HTML export. 207- =:exports= is handled as in HTML export.
206- Citations are handled as in HTML export. 208- Citations are handled as in HTML export.
207 209
208Markdown export is simpler than HTML export. It does not read =#+OPTIONS=, =#+EXCLUDE_TAGS= or =#+SELECT_TAGS=, does not leave out =noexport= or =COMMENT= headings, does not expand =#+INCLUDE:=, and drops macros. It writes no author or date. 210As in HTML export, =#+INCLUDE:= lines are expanded and macros replaced first, and =#+EXCLUDE_TAGS=, =#+SELECT_TAGS=, =COMMENT= headings and =ARCHIVE= tags decide which headings are exported (see /Which headings are exported/). Of the =#+OPTIONS=, Markdown export reads =todo=, =pri=, =tags=, =^= and =title=; the others do not apply. It writes no author or date.
209 211
210* Exporting through Emacs 212* Exporting through Emacs
211 213
@@ -223,7 +225,7 @@ Orgstar runs =emacs -Q --batch= in the Org file's folder. It opens the file, rep
223What you need: 225What you need:
224 226
225- Emacs, at =ORGSTAR_EMACS= or one of =/opt/homebrew/bin/emacs=, =/usr/local/bin/emacs=, =/Applications/Emacs.app/Contents/MacOS/Emacs=, =/run/current-system/sw/bin/emacs= or =/usr/bin/emacs=. Without it the export fails with "Emacs isn't installed, so this format can't be exported." 227- Emacs, at =ORGSTAR_EMACS= or one of =/opt/homebrew/bin/emacs=, =/usr/local/bin/emacs=, =/Applications/Emacs.app/Contents/MacOS/Emacs=, =/run/current-system/sw/bin/emacs= or =/usr/bin/emacs=. Without it the export fails with "Emacs isn't installed, so this format can't be exported."
226- For PDF, a TeX installation that Emacs's LaTeX export can run. 228- For PDF, a TeX installation that Emacs's LaTeX export can run. Emacs runs with your =PATH= plus =/opt/homebrew/bin=, =/usr/local/bin=, =/Library/TeX/texbin=, =/usr/bin= and =/bin=, the same as code blocks get, so =latexmk= and =pdflatex= from MacTeX or Homebrew are found when Orgstar was opened from the Dock.
227 229
228Things to know: 230Things to know:
229 231
docs/manual/guide/13-configuration.org +8 −8
@@ -9,7 +9,7 @@ Orgstar keeps its settings in a configuration folder:
9- =$XDG_CONFIG_HOME/orgstar= when =XDG_CONFIG_HOME= is set and not empty, 9- =$XDG_CONFIG_HOME/orgstar= when =XDG_CONFIG_HOME= is set and not empty,
10- otherwise =~/.config/orgstar=. 10- otherwise =~/.config/orgstar=.
11 11
12The environment variable =ORGSTAR_CONFIG_DIR= overrides both. If a file is missing from the configuration folder but exists in =~/Library/Application Support/Orgstar= (where earlier versions kept it), Orgstar reads it from there. 12The environment variable =ORGSTAR_CONFIG_DIR= overrides both. If a file is missing from the configuration folder but exists in =~/Library/Application Support/Orgstar= (where earlier versions kept it), Orgstar reads it from there, and reloads it when you edit it there.
13 13
14The folder holds these files: 14The folder holds these files:
15 15
@@ -98,7 +98,7 @@ See Themes and Fonts below.
98 98
99| Control | Range | Default | Key | 99| Control | Range | Default | Key |
100|-------------------------------------+------------------------+--------------+-----------------------------| 100|-------------------------------------+------------------------+--------------+-----------------------------|
101| Agenda shows N days | 1 to 31 | 10 | =org-agenda-span= | 101| Agenda shows N days | 1 to 366 | 10 | =org-agenda-span= |
102| Agenda starts N days before today | 0 to 14 days before | 3 days | =org-agenda-start-day= | 102| Agenda starts N days before today | 0 to 14 days before | 3 days | =org-agenda-start-day= |
103| Include files in subfolders | On or off | Off | =agenda-include-subfolders= | 103| Include files in subfolders | On or off | Off | =agenda-include-subfolders= |
104| Notify before timed agenda entries | On or off | On | =reminders= | 104| Notify before timed agenda entries | On or off | On | =reminders= |
@@ -194,7 +194,7 @@ The startup settings (=org-startup-*=, =org-hide-leading-stars=, =org-cycle-hide
194| =todo= | string | =" %i %-12:c"= | Prefix of lines in the TODO list | 194| =todo= | string | =" %i %-12:c"= | Prefix of lines in the TODO list |
195| =tags= | string | =" %i %-12:c"= | Prefix of tag and property matches | 195| =tags= | string | =" %i %-12:c"= | Prefix of tag and property matches |
196 196
197These mirror the entries of =org-agenda-prefix-format=. In the format, =%c= is the category, =%t= the time, =%s= the scheduled or deadline note, =%e= the effort, =%l= the level, =%b= the outline path, and a number such as =%-12= pads. See [[file:07-agenda.org][The agenda]]. 197These mirror the entries of =org-agenda-prefix-format=. In the format, =%c= is the category, =%t= the time, =%s= the scheduled or deadline note, =%e= the effort, =%l= the level, =%b= the outline path, =%T= the item's last tag (inherited tags included), and a number such as =%-12= pads. See [[file:07-agenda.org][The agenda]].
198 198
199** [theme] 199** [theme]
200 200
@@ -256,7 +256,7 @@ save = "explicit"
256 256
257** Names from earlier versions 257** Names from earlier versions
258 258
259Earlier versions used keys such as =editor.fill-column= and =agenda.span=. Orgstar still reads them. At launch, a file that uses any of them is rewritten with the current names and every setting at its current value; comments you added are not kept. A file that lacks a whole section (such as =[theme]=) gets that section added at the end. 259Earlier versions used keys such as =editor.fill-column= and =agenda.span=. Orgstar still reads them. At launch, each such key in the file is renamed in place to its current name and moved to its current section; the rest of the file, and the comments on those lines, stay as they are. When a setting is in the file under both names, the current name wins and the old line is removed. A section the move leaves empty is removed. A file that lacks a whole section (such as =[theme]=) gets that section added at the end.
260 260
261* keymap.toml and capture.toml 261* keymap.toml and capture.toml
262 262
@@ -274,7 +274,7 @@ command = "app.agenda"
274 274
275* In-file settings 275* In-file settings
276 276
277Keyword lines in a file set options for that file, as in Emacs. Orgstar reads them outside blocks; for =#+STARTUP= only lines at the element level count, so a =#+STARTUP= line inside a paragraph or a block doesn't change folding. 277Keyword lines in a file set options for that file, as in Emacs. Orgstar reads them outside blocks; for =#+STARTUP= only keyword lines count, so a =#+STARTUP= line inside a paragraph or a block changes nothing: not folding, logging or inline images.
278 278
279** Keywords Orgstar reads 279** Keywords Orgstar reads
280 280
@@ -360,7 +360,7 @@ What Import does with each kind of item:
360- Settings are written to =config.toml=. 360- Settings are written to =config.toml=.
361- Folders are added to the sidebar if they exist and aren't there already. 361- Folders are added to the sidebar if they exist and aren't there already.
362- Capture templates are appended to =capture.toml=, except those whose key is already in the file. 362- Capture templates are appended to =capture.toml=, except those whose key is already in the file.
363- Key bindings are appended to =keymap.toml=. Running the import again appends them again. 363- Key bindings are appended to =keymap.toml=, except those already in the file with the same keys, command and state. Running the import again adds no duplicates.
364 364
365The Not imported section lists what Orgstar read but can't use, with the reason: settings it has no equivalent for, values it can't work out without running Emacs, bindings to code rather than a command, and files it couldn't read. The footer counts variables that aren't about org, which are left alone. 365The Not imported section lists what Orgstar read but can't use, with the reason: settings it has no equivalent for, values it can't work out without running Emacs, bindings to code rather than a command, and files it couldn't read. The footer counts variables that aren't about org, which are left alone.
366 366
@@ -421,7 +421,7 @@ Any other =org-= or =appt-= variable is listed as having no equivalent.
421 421
422Capture templates are imported when their type is =entry=, =item=, =checkitem=, =plain= or =table-line=, their template is a string, and their target is =file=, =file+headline=, =file+olp=, =file+olp+datetree=, =file+datetree=, =file+weektree=, =id= or =clock=. The properties =:prepend=, =:immediate-finish=, =:jump-to-captured=, =:clock-in=, =:clock-keep=, =:clock-resume=, =:empty-lines=, =:empty-lines-before=, =:empty-lines-after=, =:tree-type= (=day=, =week=, =month=) and =:table-line-pos= carry over; others are listed as left out. Template groups (a key and a name only) are skipped. 422Capture templates are imported when their type is =entry=, =item=, =checkitem=, =plain= or =table-line=, their template is a string, and their target is =file=, =file+headline=, =file+olp=, =file+olp+datetree=, =file+datetree=, =file+weektree=, =id= or =clock=. The properties =:prepend=, =:immediate-finish=, =:jump-to-captured=, =:clock-in=, =:clock-keep=, =:clock-resume=, =:empty-lines=, =:empty-lines-before=, =:empty-lines-after=, =:tree-type= (=day=, =week=, =month=) and =:table-line-pos= carry over; others are listed as left out. Template groups (a key and a name only) are skipped.
423 423
424Key bindings are imported when the command is one Orgstar has a counterpart for, such as =org-todo=, =org-schedule=, =org-refile=, =org-capture= or =save-buffer=. Keys must be a string or =(kbd "…")=. In a Doom configuration, bindings without a state go to the =normal= state. 424Key bindings are imported when the command is one Orgstar has a counterpart for, such as =org-todo=, =org-schedule=, =org-refile=, =org-capture= or =save-buffer=. Keys must be a string or =(kbd "…")=; bindings with key vectors such as =[f5]= are skipped. In a Doom configuration, bindings without a state go to the =normal= state.
425 425
426** Limits of the Lisp reader 426** Limits of the Lisp reader
427 427
@@ -469,7 +469,7 @@ To keep a theme in its own file, put it in the configuration folder with the sam
469theme-file = "solarized.toml" 469theme-file = "solarized.toml"
470#+END_SRC 470#+END_SRC
471 471
472The colors stack in this order, each over the one before: the default theme, the theme file, then the colors in =config.toml=. Orgstar reloads the theme file when it changes. Only colors are read from a theme file; =font= and the other type keys in its =[theme]= table are ignored. 472The colors stack in this order, each over the one before: the default theme, the theme file, then the colors in =config.toml=. The path is relative to the configuration folder and may name a subfolder, as =themes/solarized.toml=. Orgstar reloads the theme file when it changes. Only colors are read from a theme file; =font= and the other type keys in its =[theme]= table are ignored.
473 473
474** Color keys 474** Color keys
475 475
docs/manual/guide/14-ios.org +11 −8
@@ -42,7 +42,7 @@ Tap a file in Folders, Search or the agenda to read it.
42 42
43Tap Edit in the reader. The title shows the buffer name, with =•= while there are unsaved changes. The tab bar is hidden while you edit. 43Tap Edit in the reader. The title shows the buffer name, with =•= while there are unsaved changes. The tab bar is hidden while you edit.
44 44
45The editor folds headings, drawers and blocks, styles text with the default theme, and runs the same Org commands as the Mac. Autocorrection, smart quotes and smart dashes are off; spell checking is on. 45The editor folds headings, drawers and blocks, styles text with the default theme, and runs the same Org commands as the Mac. Autocorrection, smart quotes and smart dashes are off; spell checking follows =spell-check= in =config.toml= and is off by default.
46 46
47The toolbar has: 47The toolbar has:
48 48
@@ -102,6 +102,7 @@ With a hardware keyboard, the editor uses the Emacs keymap, whatever =keymap= is
102- Command shortcuts are the system's. 102- Command shortcuts are the system's.
103- Keys the keymap leaves to the text system stay with iOS. These include the editing keys =C-a=, =C-e=, =C-k= and similar, which iOS handles itself. 103- Keys the keymap leaves to the text system stay with iOS. These include the editing keys =C-a=, =C-e=, =C-k= and similar, which iOS handles itself.
104- After a prefix such as =C-c=, the message line shows =C-c-= while it waits for the next key. An unbound sequence shows =… is undefined=. 104- After a prefix such as =C-c=, the message line shows =C-c-= while it waits for the next key. An unbound sequence shows =… is undefined=.
105- A sequence bound to a command that can't run at the caret, or that the iOS app doesn't have, shows why, as on the Mac: the command's own message (such as =Not on a heading=), or =Not available on iOS yet=.
105 106
106See [[file:03-keys.org][Keys and commands]] for the Emacs bindings. 107See [[file:03-keys.org][Keys and commands]] for the Emacs bindings.
107 108
@@ -121,7 +122,7 @@ The Agenda tab shows the agenda over all your folders, with the span and start d
121- Views (the calendar icon) :: the built-in views and those in =views.toml=, Tags and Properties… (a match such as =+work-home= or =TODO="WAIT"=), and in the day view, Today, Earlier and Later. 122- Views (the calendar icon) :: the built-in views and those in =views.toml=, Tags and Properties… (a match such as =+work-home= or =TODO="WAIT"=), and in the day view, Today, Earlier and Later.
122- Filter :: keep or leave out tags and categories of the entries shown, or type a filter as Org's =/= takes it: =+keep= and =-drop= tags or categories, =<0:30= for effort, =/regexp/=. The status line shows the filter in use. 123- Filter :: keep or leave out tags and categories of the entries shown, or type a filter as Org's =/= takes it: =+keep= and =-drop= tags or categories, =<0:30= for effort, =/regexp/=. The status line shows the filter in use.
123- Tap an entry to read it, at its heading. 124- Tap an entry to read it, at its heading.
124- Swipe a TODO entry to the left to mark it done with the first done keyword of its sequence. 125- Swipe a TODO entry to the left to mark it done with the first done keyword of its sequence, as the file defines its keywords (with the default keywords, its =#+TODO= lines and its setup files).
125- Touch and hold an entry for TODO State…, Schedule…, Deadline…, Tags…, Priority…, Clock In, Refile…, and Archive…. 126- Touch and hold an entry for TODO State…, Schedule…, Deadline…, Tags…, Priority…, Clock In, Refile…, and Archive….
126 127
127Commands from the agenda change the file directly when it isn't open, and through the editor when it is. If the heading changed since the agenda was built, nothing runs. 128Commands from the agenda change the file directly when it isn't open, and through the editor when it is. If the heading changed since the agenda was built, nothing runs.
@@ -139,7 +140,7 @@ Tap Capture (the pencil icon) in the Agenda or Folders tab.
139 140
140Templates come from =capture.toml= in the configuration folder (see Settings below). Without one, the two default templates apply. A template with =immediate-finish= files as soon as its questions are answered, and one with =jump-to-captured= opens the captured entry. =%^g= offers the target file's tags as choices. 141Templates come from =capture.toml= in the configuration folder (see Settings below). Without one, the two default templates apply. A template with =immediate-finish= files as soon as its questions are answered, and one with =jump-to-captured= opens the captured entry. =%^g= offers the target file's tags as choices.
141 142
142=org-protocol://capture= links opened on the device open the capture sheet with the link's template, URL, title and text. 143=org-protocol://capture= links opened on the device open the capture sheet with the link's template, URL, title and text. When the link names a template key that =capture.toml= doesn't have, the sheet starts on the first template and shows =No capture template "x"= with the key.
143 144
144** From the share sheet 145** From the share sheet
145 146
@@ -230,18 +231,20 @@ Changes to the files apply as they sync, and again each time you return to the a
230 231
231Stop Using This Folder returns every setting to its default. 232Stop Using This Folder returns every setting to its default.
232 233
233The In use section shows the TODO keywords, the agenda span and start, the reminder lead time, and the capture template keys in effect. 234The In use section shows the TODO keywords, the agenda span and start (for example =10 days, starting 3 days before today=), the reminder lead time, and the capture template keys in effect.
234 235
235These settings from =config.toml= apply on iOS: 236These settings from =config.toml= apply on iOS:
236 237
237- =org-todo-keywords=, =org-list-allow-alphabetical= 238- =org-todo-keywords=, =org-list-allow-alphabetical=
238- =org-tags-column=, =org-insert-heading-respect-content=, =fill-column= 239- =org-tags-column=, =org-insert-heading-respect-content=, =org-M-RET-may-split-line=, =fill-column=
240- =org-hide-emphasis-markers= and =org-pretty-entities=, for how tag and table alignment and filling measure text, as on the Mac
239- =org-log-done=, =org-log-reschedule=, =org-log-redeadline=, =org-log-into-drawer= 241- =org-log-done=, =org-log-reschedule=, =org-log-redeadline=, =org-log-into-drawer=
240- =electric-pair-mode= 242- =org-use-speed-commands=, with a hardware keyboard
243- =electric-pair-mode=, =spell-check=
241- =org-agenda-span=, =org-agenda-start-day=, =agenda-include-subfolders= 244- =org-agenda-span=, =org-agenda-start-day=, =agenda-include-subfolders=
242- =reminders=, =appt-message-warning-time= 245- =reminders=, =appt-message-warning-time=
243 246
244=capture.toml= and =views.toml= in the folder apply too. Other settings, including =keymap=, =save=, the theme and font, and the startup settings, don't apply on iOS. See [[file:13-configuration.org][Configuration]]. 247=capture.toml= and =views.toml= in the folder apply too. Other settings, including =keymap=, =save=, the theme and font, and the startup settings (=org-startup-*=, =org-hide-leading-stars=, =org-cycle-hide-*-startup=), don't change what the iOS reader and editor show. See [[file:13-configuration.org][Configuration]].
245 248
246* Spotlight and Quick Look 249* Spotlight and Quick Look
247 250
@@ -260,4 +263,4 @@ Quick Look in the Files app shows org files as the HTML export renders them.
260- The global capture hotkey and the Settings window. 263- The global capture hotkey and the Settings window.
261- Explicit saving. 264- Explicit saving.
262 265
263Commands the iOS app can't carry out show a message instead, such as "Not available on iOS yet". Commands that only appear on the Mac, such as Refile from the editor, aren't listed in Commands; refile and archive from the agenda instead. 266Commands the iOS app can't carry out show a message instead, such as "Not available on iOS yet" or "/Command/ isn't available on iPhone and iPad." Only tables that need Emacs say that Emacs is needed. Commands that only appear on the Mac, such as Refile from the editor, aren't listed in Commands; refile and archive from the agenda instead.
docs/manual/guide/15-alongside-emacs.org +2 −1
@@ -141,6 +141,7 @@ An app started from the Dock doesn't see your shell's =PATH=, which is why Orgst
141- Orgstar writes a snapshot of the buffer to a temporary folder and runs Emacs on it, so unsaved edits are included. The working directory is the file's folder. 141- Orgstar writes a snapshot of the buffer to a temporary folder and runs Emacs on it, so unsaved edits are included. The working directory is the file's folder.
142- File-local variables marked safe apply (=enable-local-variables= is =:safe=). 142- File-local variables marked safe apply (=enable-local-variables= is =:safe=).
143- Export doesn't run source blocks (=org-export-use-babel= is =nil=). The exported file is written next to the org file, as Emacs writes it, or moved to the place you chose. 143- Export doesn't run source blocks (=org-export-use-babel= is =nil=). The exported file is written next to the org file, as Emacs writes it, or moved to the place you chose.
144- For export, Emacs gets your =PATH= with =/opt/homebrew/bin=, =/usr/local/bin=, =/Library/TeX/texbin=, =/usr/bin= and =/bin= added, as source blocks do, so the programs it starts, such as =pdflatex=, are found when Orgstar was opened from the Dock.
144- PDF export needs a LaTeX installation that Org's LaTeX exporter can run. 145- PDF export needs a LaTeX installation that Org's LaTeX exporter can run.
145- A table recalculation that takes more than 60 seconds, or an export that takes more than 120 seconds, is stopped. Source blocks have a limit of 300 seconds, and =⌘.= (Cancel Running Block) stops one. 146- A table recalculation that takes more than 60 seconds, or an export that takes more than 120 seconds, is stopped. Source blocks have a limit of 300 seconds, and =⌘.= (Cancel Running Block) stops one.
146 147
@@ -234,4 +235,4 @@ Other:
234- =#+SETUPFILE= URLs aren't fetched. 235- =#+SETUPFILE= URLs aren't fetched.
235- Most =#+STARTUP= options for footnotes, entities, LaTeX previews, numbering and odd levels are accepted and ignored; see [[file:13-configuration.org][Configuration]]. 236- Most =#+STARTUP= options for footnotes, entities, LaTeX previews, numbering and odd levels are accepted and ignored; see [[file:13-configuration.org][Configuration]].
236- =display-line-numbers-type= has no relative or visual mode. 237- =display-line-numbers-type= has no relative or visual mode.
237- In the Doom preset, =ZQ= isn't available; use the window's close button. 238- =C-c .= with the caret on the =--= of a clock line's range inserts a new timestamp; Emacs replaces the second timestamp.