org-mode tips
- When point is on a header
M+{+M-}move notes up and down
Big Picture
- Folded docs
- Org files are meant to be read folded; if you scroll instead of folding, that's the first habit to fix.
- Think in Headings
- you restructure documents by grabbing headings and moving them, never by cut-and-paste of text regions. If you're still killing/yanking blocks of lines, org is being used as a plain text editor.
The main movements
- TAB / C-TAB
- fold subtree / cycle whole buffer.
- C-command-←/→
- promote/demote a heading; C-command-Shift-←/→ promote/demote with its whole subtree.
- M-RET
- new heading/list item at same level
- M-S-RET
- makes it a TODO.
- C-command-↑/↓
- move a subtree up/down past its siblings.
- C-c C-d
- set deadline.
- C-c C-q
- set tags.
- C-c C-c
- the universal "act on thing at point": toggle a checkbox, realign a table, refresh a block. When unsure, C-c C-c.
- C-c w
- refile! Custom command to move heading to project notes
Focus
Narrowing for focused work
Narrowing — C-x n s (org-narrow-to-subtree) with point in the tree.
The buffer now shows only that subtree; everything else still exists but is outside the accessible region. C-x n w widens back. This is what I'd use for your case of "work on one project note's section / one day's entry without distraction." Saves are still whole-file; narrowing is purely a view.
Indirect buffer — C-c C-x b (org-tree-to-indirect-buffer).
Pops the subtree into a separate buffer visiting the same text. The killer feature over narrowing: you can have the full file in one window and the focused subtree in another, or two different subtrees side by side, all editing the same underlying file live. With C-u it makes a new indirect buffer each time instead of reusing one.
Goto
Org goto for navigating large files
‘C-c C-j’ (‘org-goto’) Jump to a different place without changing the current outline visibility. Shows the document structure in a temporary buffer, where you can use the following keys to find your destination:
‘<TAB>’ Cycle visibility. ‘<DOWN>’ / ‘<UP>’ Next/previous visible headline. ‘<RET>’ Select this location. ‘/’ Do a Sparse-tree search
The following keys work if you turn off ‘org-goto-auto-isearch’
Note on Attachments
Attachments belong to a heading, not a file: each attachment lives in
a directory keyed by the heading's :ID: property, under the central
store ~/RoamNotes/.attach/. Because resolution goes through the ID
against an absolute path, links keep working when a heading is refiled
or when the org file itself moves directories. Screenshots pasted with
org-download-clipboard go through the same machinery
(org-download-method 'attach), so images and PDFs all end up in one
ID-keyed place. A heading that has attachments carries the :ATTACH:
tag.
- To attach files
- open dired on the folder (e.g.
~/Downloads) with the
org note in the other window and point on the target heading; mark the
files with m and hit C-c C-x a — all marked files attach to that
heading in one shot. (Single files can also be attached from the
heading itself with C-c C-a, then c copy or m move.) To get things
back: C-c C-a o opens an attachment with completion, C-c C-a f opens
the heading's attachment directory in dired. For self-documenting
notes, add an explicit link like [[attachment:report.pdf]] — C-c C-o
opens it, and image attachments display inline.
Moving with headings
- C-command-←/→ — promote/demote a heading; C-command-Shift-←/→ promote/demote with its whole subtree.
- M-RET — new heading/list item at same level; M-S-RET makes it a TODO.
- C-command-↑/↓ — move a subtree up/down past its siblings.
*
Lists
- Prefer use org lists the "-" makes each line a structural object instead of raw text.
- M-RET inserts the next item with the next number.
- M-RET — next item; M-↑/M-↓ — reorder items (with their sub-content);
- M-→/M-← — nest/unnest; TAB folds sub-structure under an item;
- C-c C-c/checkbox machinery (- [ ]), counters
[0/0]; - C-c - converts a region of bare lines into a list in one stroke, and cycles bullet styles;
Numbered lists
org has first-class ordered lists Native form: start a line with 1. or 1) (your choice of style):
- Automatic renumbering: insert an item in the middle, delete one, or reorder with M-↑/M-↓ — all the numbers fix themselves. This is the big win over hand-typed numbers; you never edit "3)" to "4)" again.
- C-c - cycles bullet style on the whole list: - → + → 1. → 1) → back. So your existing -1) lists: strip the stray digits once, then C-c - until it's numbered. (With a region, it converts the region.)
- Indent/outdent items with M-→/M-← (subitem numbering restarts: nested lists under 2) get their own 1), 2)…) — and M-S-→/← takes sub-items along, same meta/shift-meta logic as headings.
- Checkboxes compose: 1. [ ] thing works, with the same C-c C-c
toggle and
[0/0]counters.
orgs fixed-width literal
A line starting with : (colon-space) is org's fixed-width / literal line — the inline sibling of a #+beginexample block. Org fontifies it in monospace (org-code-ish face, which is the font change you're seeing) and exports it verbatim, preserving whitespace, with no markup interpretation inside. It's handy for one or two lines of code/output where a full example block is overkill:
remaped the ~ emphasis character to red text.
* | Test
/ | Test
_ | Test
= | Test
~ | Test
- |
Test
Tables
Use |------—| to insert a horizontal separator between header and body.
Sum column or region C-c + Add numbers in a column
Can shrink column sizes sith C-c <TAB> and "<N>" somewhere in the column gives the size fo the field to show
Example:
| N | N2 | N3 | N4 | sqrt(n) | sqrt[4](N) |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 1 | 1 |
| 4 | 16 | 64 | 256 | 2 | 1.4142136 |
| 7 | 49 | 343 | 2401 | 2.6457513 | 1.6265766 |
Screenshots
- When moving downloaded images. Need to move the
org-clipboard-downloadfiles to the directory that the org file is in
Org mode documentation
Foundational (worth actually reading once)
- Bernt Hansen — "Org Mode: Organize Your Life in Plain Text!" (doc.norang.ca/org-mode.html). The classic deep-dive: a complete real GTD workflow with capture/refile/clocking/agenda custom commands, written as a living document. Twenty years old, still the best single description of a coherent org workflow. Read it for the shape, steal selectively — his setup is heavier than you need.
- The compact Org guide (M-x org-info → or orgmode.org/guide) — you know most of it now, but a single evening pass fills exactly the kind of gaps you've been asking about (lists, tags, properties, agenda).
- Worg (orgmode.org/worg) — the community wiki; the "Org tutorials" and "Org hacks" sections are where the long tail lives (e.g., custom agenda command cookbook).
Workflow thinkers
- Karl Voit (karl-voit.at, the "UOMF" series — Using Org Mode Features) — an information-management researcher who writes carefully about why to structure notes/tags/dates certain ways, not just how. His piece on tags-vs-hierarchy matches the "link things, tag kinds" rule we discussed.
- Nicolas Rougier — "Get Things Done with Emacs" — short, opinionated, minimal GTD-in-org; a physicist-adjacent (computational neuroscience) author, and a good antidote to Hansen-scale maximalism.
- Jethro Kuan's braindump + org-roam docs — the origin of the org-roam workflow you already run; his "How I take notes" posts articulate the dailies→permanent-notes flow you've been formalizing with C-c w.
Tooling to know exists (read the READMEs, adopt if a need appears)
- alphapapa's org-ql — SQL-ish queries over org (tags × todo × dates × regexp), and org-super-agenda — auto-grouping agenda views. The power tools when C-c a m stops being enough. His "org-almanac" gathers org resources generally.
If you only take two: Hansen for tasks/agenda, Voit for notes/organization. And given the workflow you've built this week (dailies → project logs → attach), you're honestly already past what most of the intro material teaches — the reading is for stealing refinements, not learning the system.