Introduction
org.nvim implements Emacs Org mode in pure Lua. It reads and writes the same plain-text format, so files can be shared with Emacs.
It covers the parts of Org you use every day:
- Outlines with Emacs-style folding, cycling, motions and text objects.
- TODO workflows with logging, repeaters, priorities, tags and properties.
- An agenda with a time grid, habits, custom commands and bulk actions.
- Capture templates that file notes from any buffer.
- Clocking, effort estimates, clock tables and column view.
- Spreadsheet tables with
#+TBLFMformulas. - Source blocks that run asynchronously (Babel), and tangling.
- Export to HTML, LaTeX/PDF, Beamer, Markdown, ASCII, Org, ODT, iCalendar and Texinfo/Info, publishing projects, plus more formats via pandoc.
There are no dependencies: no tree-sitter parser, external binary or companion plugin.
Quick start:
- Open
~/org/todo.organd type* TODO Buy milk. - Press
<prefix>sto schedule it for today. - Press
<prefix>athenato open the weekly agenda. - Press
<prefix>cthentin any buffer to capture a task. - Press
g?to list every keymap.
For a hands-on tour, open examples/tutorial.org from the plugin directory. It has a section with exercises for every feature. To try it with a throwaway config (agenda and capture included), run from the plugin directory:
nvim -u examples/minimal_init.lua examples/tutorial.org
examples/00-index.org links to one file per feature area, each with many examples, exercises and the result they should produce.
Conventions used in this manual:
<prefix> The value ofmappings.prefix(default<leader>o). (ctx) A context-sensitive key. When it does not apply at the cursor, the key falls back to its normal Vim behaviour (for example>>indents plain text and<C-a>increments numbers). target Many Lua functions accept{ bufnr = n, lnum = l }to act on a headline other than the one at the cursor.
Press g? in an org or agenda buffer for a list of active keymaps, grouped by topic. Each row lists every key of one command; i_ marks Insert-mode keys. / searches the list and { / } jump between sections.