org.nvim

Playground

Try org.nvim in your browser

Watch each lesson of the built-in tutor, :Org tutor, played in a real Neovim, with captions. Pause, scrub, jump to any exercise and copy text off the screen, or turn on Follow along and press the keys yourself. The keys are org.nvim's defaults, with the leader key on Space.

  • 8 lessons
  • 93 exercises
  • 16 minutes
  • Nothing to install

org.nvim tutor 1: the basics

Turn your phone sideways for a bigger terminal, or read the transcript.

Exercises 16

  1. Welcome0:00

    Welcome to org.nvim! This is a working copy of the tutor, a normal org file: every key of org.nvim works here, and you learn by doing.

    Try it in Neovim :Org tutor basics

  2. Fold and unfold0:07

    Put the cursor on the Kitchen headline below and press <Tab> a few times: it cycles the subtree between folded, its children and everything. <S-Tab> does the same for the whole file (press it until everything shows again).

    The ✓ shows once Kitchen has been folded (a moment after).

    Keys <Tab> <Tab> <Tab> <S-Tab> <S-Tab> <S-Tab>

    Try it in Neovim :Org tutor basics

  3. Insert a headline0:20

    Put the cursor on Apples and press <M-CR>: a new headline of the same level opens, in Insert mode (above when the cursor is at the start of the line, else below). Type Pears and press <Esc>. <leader>oih does the same.

    Keys <M-CR> Pears <Esc>

    Try it in Neovim :Org tutor basics

  4. Promote and demote0:28

    >> moves a headline one level down and << one level up (>s and <s take its subtree along).

    Make Carrot a child of Vegetables (demote it), and Spoon a child of Drawer (promote it).

    Keys >> <<

    Try it in Neovim :Org tutor basics

  5. Move a subtree0:38

    <M-k> and <M-j> move the subtree at the cursor past its siblings. Put the days below in order: Monday, Tuesday, Wednesday.

    Keys <M-j>

    Try it in Neovim :Org tutor basics

  6. Finish a task0:46

    Put the cursor on Buy milk and press cit: TODO becomes DONE. <S-Right> and <S-Left> cycle the keyword too.

    Keys cit

    Try it in Neovim :Org tutor basics

  7. Start a task0:54

    Turn Write a letter into a TODO item with cit.

    Keys cit

    Try it in Neovim :Org tutor basics

  8. Set a priority1:02

    Put the cursor on Pay rent, press <leader>o, and then A. <S-Up> and <S-Down> raise and lower a priority.

    Keys <leader>o, A

    Try it in Neovim :Org tutor basics

  9. Tag a headline1:10

    Put the cursor on Prepare slides, press <leader>ot, type work and press <CR>.

    Keys <leader>ot work <CR>

    Try it in Neovim :Org tutor basics

  10. Schedule a task1:18

    Put the cursor on Water the plants, press <leader>os and accept a date.

    Keys <leader>os <CR>

    Try it in Neovim :Org tutor basics

  11. Set a deadline1:26

    Put the cursor on File the tax return, press <leader>od and accept a date. On a date, <S-Right> and <S-Left> move it a day, and <S-Up> / <S-Down> change the part under the cursor.

    Keys <leader>od <CR>

    Try it in Neovim :Org tutor basics

  12. Add a list item1:33

    Put the cursor on Bread and press <M-CR>: a new item opens below. Type Butter and press <Esc>.

    Keys <M-CR> Butter <Esc>

    Try it in Neovim :Org tutor basics

  13. Check a checkbox1:42

    Put the cursor on Eggs and press <C-c><C-c> (or <C-Space>). The [0/2] cookie counts the checked items.

    Keys <C-c><C-c>

    Try it in Neovim :Org tutor basics

  14. Align a table1:50

    Put the cursor anywhere in the table and press <C-c><C-c>.

    Keys <C-c><C-c>

    Try it in Neovim :Org tutor basics

  15. Add a row1:58

    Put the cursor on the Lemon row, press A for Insert mode at its end and then <Tab>: past the last field a new row opens. Type Kiwi, press <Tab>, type 5, and leave Insert mode with <Esc>. <Tab> aligns the table as it goes.

    Keys A <Tab> Kiwi <Tab> 5 <Esc>

    Try it in Neovim :Org tutor basics

  16. Insert a link2:08

    Put the cursor at the end of the Map line below, press <leader>oli, type *Treasure chest as the link and the treasure as the description.

    Map:

    Keys $ <leader>oli *Treasure chest <CR> the treasure <CR> <Esc>

    Try it in Neovim :Org tutor basics

  17. Follow a link2:23

    Put the cursor on the link you made and press <CR>: the cursor jumps to Treasure chest. <leader>ols stores a link to where you are, for <leader>oli to offer later.

    Keys <CR>

    Try it in Neovim :Org tutor basics

Transcript the exercises, their keys and captions, and the screen at the end of each, as text
  1. Welcome

    Welcome to org.nvim! This is a working copy of the tutor, a normal org file: every key of org.nvim works here, and you learn by doing.

    • A real org file: do each exercise and a ✓ appears on its headline.
  2. 1.1 Fold and unfold

    Put the cursor on the Kitchen headline below and press <Tab> a few times: it cycles the subtree between folded, its children and everything. <S-Tab> does the same for the whole file (press it until everything shows again).

    The ✓ shows once Kitchen has been folded (a moment after).

    Keys <Tab> <Tab> <Tab> <S-Tab> <S-Tab> <S-Tab>

    • <Tab> on a headline cycles it: folded, its children, everything.
    • <S-Tab> does the same for the whole file.
    * Lesson 1: the outline
    An org file is an outline: a line that starts with stars is a headline,
    and the number of stars is its level. Everything under a headline, up to
    the next one of the same or a higher level, is its subtree.
    
    ** 1.1 Fold and unfold  ✓
    Put the cursor on the =Kitchen= headline below and press =<Tab>=
    a few times: it cycles the subtree between folded, its children and
    everything. =<S-Tab>= does the same for the whole file (press
    it until everything shows again).
    
    The ✓ shows once =Kitchen= has been folded (a moment after).
    
    *** Kitchen
    **** Pots
    Two big ones and a small one.
    **** Pans
    A frying pan.
    
    ** 1.2 Insert a headline  ✗
    Put the cursor on =Apples= and press =<M-CR>=: a new headline
     basics.org                                                                25:1
    SHOW ALL
  3. 1.2 Insert a headline

    Put the cursor on Apples and press <M-CR>: a new headline of the same level opens, in Insert mode (above when the cursor is at the start of the line, else below). Type Pears and press <Esc>. <leader>oih does the same.

    Keys <M-CR> Pears <Esc>

    • <M-CR> opens a new headline below, in Insert mode.
    ** 1.2 Insert a headline  ✓
    Put the cursor on =Apples= and press =<M-CR>=: a new headline
    of the same level opens, in Insert mode (above when the cursor is at the
    start of the line, else below). Type =Pears= and press =<Esc>=.
    =<leader>oih= does the same.
    
    *** Fruit
    **** Apples
    **** Pears
    **** Bananas
    
    ** 1.3 Promote and demote  ✗
    =>>= moves a headline one level down and
    =<<= one level up (=>s= and
    =<s= take its subtree along).
    
    Make =Carrot= a child of =Vegetables= (demote it), and =Spoon= a child of
    =Drawer= (promote it).
    
    *** Vegetables
    *** Carrot
     basics.org                                                               52:10
    SHOW ALL
  4. 1.3 Promote and demote

    >> moves a headline one level down and << one level up (>s and <s take its subtree along).

    Make Carrot a child of Vegetables (demote it), and Spoon a child of Drawer (promote it).

    Keys >> <<

    • >> demotes a headline one level.
    • << promotes it one level up.
    ** 1.3 Promote and demote  ✓
    =>>= moves a headline one level down and
    =<<= one level up (=>s= and
    =<s= take its subtree along).
    
    Make =Carrot= a child of =Vegetables= (demote it), and =Spoon= a child of
    =Drawer= (promote it).
    
    *** Vegetables
    **** Carrot
    *** Drawer
    **** Spoon
    
    ** 1.4 Move a subtree  ✗
    =<M-k>= and =<M-j>= move the subtree at the cursor
    past its siblings. Put the days below in order: Monday, Tuesday,
    Wednesday.
    
    *** Tuesday
    *** Monday
    *** Wednesday
     basics.org                                                                66:6
    SHOW ALL
  5. 1.4 Move a subtree

    <M-k> and <M-j> move the subtree at the cursor past its siblings. Put the days below in order: Monday, Tuesday, Wednesday.

    Keys <M-j>

    • <M-j> moves the subtree down, past its next sibling.
    ** 1.4 Move a subtree  ✓
    =<M-k>= and =<M-j>= move the subtree at the cursor
    past its siblings. Put the days below in order: Monday, Tuesday,
    Wednesday.
    
    *** Monday
    *** Tuesday
    *** Wednesday
    
    * Lesson 2: TODO items and priorities
    A headline becomes a task when it starts with a TODO keyword. This file
    uses =TODO= and =DONE= (the =#+TODO:= line at the top).
    
    ** 2.1 Finish a task  ✗
    Put the cursor on =Buy milk= and press =cit=: TODO becomes
    DONE. =<S-Right>= and =<S-Left>= cycle the keyword
    too.
    
    *** TODO Buy milk
    
    ** 2.2 Start a task  ✗
     basics.org                                                                74:5
    SHOW ALL
  6. 2.1 Finish a task

    Put the cursor on Buy milk and press cit: TODO becomes DONE. <S-Right> and <S-Left> cycle the keyword too.

    Keys cit

    • cit cycles the keyword: TODO becomes DONE.
    ** 2.1 Finish a task  ✓
    Put the cursor on =Buy milk= and press =cit=: TODO becomes
    DONE. =<S-Right>= and =<S-Left>= cycle the keyword
    too.
    
    *** DONE Buy milk
    
    ** 2.2 Start a task  ✗
    Turn =Write a letter= into a TODO item with =cit=.
    
    *** Write a letter
    
    ** 2.3 Set a priority  ✗
    Put the cursor on =Pay rent=, press =<leader>o,= and then =A=.
    =<S-Up>= and =<S-Down>= raise and lower a priority.
    
    *** TODO Pay rent
    
    * Lesson 3: tags
    Tags go at the end of a headline, between colons: =:work:home:=.
    
     basics.org                                                               86:10
    SHOW ALL
  7. 2.2 Start a task

    Turn Write a letter into a TODO item with cit.

    Keys cit

    • The same key makes a plain headline a TODO item.
    ** 2.2 Start a task  ✓
    Turn =Write a letter= into a TODO item with =cit=.
    
    *** TODO Write a letter
    
    ** 2.3 Set a priority  ✗
    Put the cursor on =Pay rent=, press =<leader>o,= and then =A=.
    =<S-Up>= and =<S-Down>= raise and lower a priority.
    
    *** TODO Pay rent
    
    * Lesson 3: tags
    Tags go at the end of a headline, between colons: =:work:home:=.
    
    ** 3.1 Tag a headline  ✗
    Put the cursor on =Prepare slides=, press =<leader>ot=, type =work=
    and press =<CR>=.
    
    *** TODO Prepare slides
    
    * Lesson 4: dates
     basics.org                                                                91:5
    SHOW ALL
  8. 2.3 Set a priority

    Put the cursor on Pay rent, press <leader>o, and then A. <S-Up> and <S-Down> raise and lower a priority.

    Keys <leader>o, A

    • <leader>o, asks for a priority: A is the highest.
    ** 2.3 Set a priority  ✓
    Put the cursor on =Pay rent=, press =<leader>o,= and then =A=.
    =<S-Up>= and =<S-Down>= raise and lower a priority.
    
    *** TODO [#A] Pay rent
    
    * Lesson 3: tags
    Tags go at the end of a headline, between colons: =:work:home:=.
    
    ** 3.1 Tag a headline  ✗
    Put the cursor on =Prepare slides=, press =<leader>ot=, type =work=
    and press =<CR>=.
    
    *** TODO Prepare slides
    
    * Lesson 4: dates
    A headline can be scheduled (the day you plan to work on it) or have a
    deadline. The date prompt takes a date like =2026-10-12=, =+3= (in three
    days), =fri= or nothing (today); =<CR>= accepts it.
    
    ** 4.1 Schedule a task  ✗
     basics.org                                                               97:10
  9. 3.1 Tag a headline

    Put the cursor on Prepare slides, press <leader>ot, type work and press <CR>.

    Keys <leader>ot work <CR>

    • <leader>ot asks for tags: type one and press <CR>.
    ** 3.1 Tag a headline  ✓
    Put the cursor on =Prepare slides=, press =<leader>ot=, type =work=
    and press =<CR>=.
    
    *** TODO Prepare slides                                                :work:
    
    * Lesson 4: dates
    A headline can be scheduled (the day you plan to work on it) or have a
    deadline. The date prompt takes a date like =2026-10-12=, =+3= (in three
    days), =fri= or nothing (today); =<CR>= accepts it.
    
    ** 4.1 Schedule a task  ✗
    Put the cursor on =Water the plants=, press =<leader>os= and accept
    a date.
    
    *** TODO Water the plants
    
    ** 4.2 Set a deadline  ✗
    Put the cursor on =File the tax return=, press =<leader>od= and
    accept a date. On a date, =<S-Right>= and =<S-Left>=
    move it a day, and =<S-Up>= / =<S-Down>= change the
     basics.org                                                              106:10
    Tags: work
  10. 4.1 Schedule a task

    Put the cursor on Water the plants, press <leader>os and accept a date.

    Keys <leader>os <CR>

    • <leader>os opens the date prompt; <CR> takes today.
    ** 4.1 Schedule a task  ✓
    Put the cursor on =Water the plants=, press =<leader>os= and accept
    a date.
    
    *** TODO Water the plants
    SCHEDULED: <2026-10-12 Mon>
    
    ** 4.2 Set a deadline  ✗
    Put the cursor on =File the tax return=, press =<leader>od= and
    accept a date. On a date, =<S-Right>= and =<S-Left>=
    move it a day, and =<S-Up>= / =<S-Down>= change the
    part under the cursor.
    
    *** TODO File the tax return
    
    * Lesson 5: lists and checkboxes
    Lines starting with =-=, =+= or =1.= are list items. =[ ]= makes an item
    a checkbox.
    
    ** 5.1 Add a list item  ✗
    Put the cursor on =Bread= and press =<M-CR>=: a new item
     basics.org                                                              117:10
    Tags: work
  11. 4.2 Set a deadline

    Put the cursor on File the tax return, press <leader>od and accept a date. On a date, <S-Right> and <S-Left> move it a day, and <S-Up> / <S-Down> change the part under the cursor.

    Keys <leader>od <CR>

    • <leader>od adds a DEADLINE the same way.
    ** 4.2 Set a deadline  ✓
    Put the cursor on =File the tax return=, press =<leader>od= and
    accept a date. On a date, =<S-Right>= and =<S-Left>=
    move it a day, and =<S-Up>= / =<S-Down>= change the
    part under the cursor.
    
    *** TODO File the tax return
    DEADLINE: <2026-10-12 Mon>
    
    * Lesson 5: lists and checkboxes
    Lines starting with =-=, =+= or =1.= are list items. =[ ]= makes an item
    a checkbox.
    
    ** 5.1 Add a list item  ✗
    Put the cursor on =Bread= and press =<M-CR>=: a new item
    opens below. Type =Butter= and press =<Esc>=.
    
    - Milk
    - Bread
    
    ** 5.2 Check a checkbox  ✗
     basics.org                                                              126:10
    Tags: work
  12. 5.1 Add a list item

    Put the cursor on Bread and press <M-CR>: a new item opens below. Type Butter and press <Esc>.

    Keys <M-CR> Butter <Esc>

    • In a list, <M-CR> adds an item below.
    ** 5.1 Add a list item  ✓
    Put the cursor on =Bread= and press =<M-CR>=: a new item
    opens below. Type =Butter= and press =<Esc>=.
    
    - Milk
    - Bread
    - Butter
    
    ** 5.2 Check a checkbox  ✗
    Put the cursor on =Eggs= and press =<C-c><C-c>= (or
    =<C-Space>=). The =[0/2]= cookie counts the checked items.
    
    - Shopping [0/2]
      - [ ] Eggs
      - [ ] Flour
    
    * Lesson 6: tables
    A table is lines that start with =|=. You don't have to line the columns
    up yourself.
    
    ** 6.1 Align a table  ✗
     basics.org                                                               139:8
    Tags: work
  13. 5.2 Check a checkbox

    Put the cursor on Eggs and press <C-c><C-c> (or <C-Space>). The [0/2] cookie counts the checked items.

    Keys <C-c><C-c>

    • <C-c><C-c> ticks the checkbox; the cookie counts the ticks.
    ** 5.2 Check a checkbox  ✓
    Put the cursor on =Eggs= and press =<C-c><C-c>= (or
    =<C-Space>=). The =[0/2]= cookie counts the checked items.
    
    - Shopping [1/2]
      - [X] Eggs
      - [ ] Flour
    
    * Lesson 6: tables
    A table is lines that start with =|=. You don't have to line the columns
    up yourself.
    
    ** 6.1 Align a table  ✗
    Put the cursor anywhere in the table and press =<C-c><C-c>=.
    
    | Fruit | Count |
    |-
    | Apple | 3 |
    | Orange | 12 |
    
    ** 6.2 Add a row  ✗
     basics.org                                                               146:9
    Tags: work
  14. 6.1 Align a table

    Put the cursor anywhere in the table and press <C-c><C-c>.

    Keys <C-c><C-c>

    • <C-c><C-c> in a table lines its columns up.
    ** 6.1 Align a table  ✓
    Put the cursor anywhere in the table and press =<C-c><C-c>=.
    
    | Fruit  | Count |
    |--------+-------|
    | Apple  |     3 |
    | Orange |    12 |
    
    ** 6.2 Add a row  ✗
    Put the cursor on the =Lemon= row, press =A= for Insert mode at its end
    and then =<Tab>=: past the last field a new row
    opens. Type =Kiwi=, press =<Tab>=, type =5=, and
    leave Insert mode with =<Esc>=. =<Tab>= aligns the
    table as it goes.
    
    | Fruit | Count |
    |-------+-------|
    | Pear  |     7 |
    | Lemon |     2 |
    
    * Lesson 7: links
     basics.org                                                               158:3
    Tags: work
  15. 6.2 Add a row

    Put the cursor on the Lemon row, press A for Insert mode at its end and then <Tab>: past the last field a new row opens. Type Kiwi, press <Tab>, type 5, and leave Insert mode with <Esc>. <Tab> aligns the table as it goes.

    Keys A <Tab> Kiwi <Tab> 5 <Esc>

    • In Insert mode, <Tab> past the last field opens a new row.
    ** 6.2 Add a row  ✓
    Put the cursor on the =Lemon= row, press =A= for Insert mode at its end
    and then =<Tab>=: past the last field a new row
    opens. Type =Kiwi=, press =<Tab>=, type =5=, and
    leave Insert mode with =<Esc>=. =<Tab>= aligns the
    table as it goes.
    
    | Fruit | Count |
    |-------+-------|
    | Pear  |     7 |
    | Lemon |     2 |
    | Kiwi  |     5 |
    
    * Lesson 7: links
    A link is written =[[target][description]]=; only the description shows.
    
    ** 7.1 Insert a link  ✗
    Put the cursor at the end of the =Map= line below, press
    =<leader>oli=, type =*Treasure chest= as the link and =the
    treasure= as the description.
    
     basics.org                                                              172:15
    Tags: work
  16. 7.1 Insert a link

    Put the cursor at the end of the Map line below, press <leader>oli, type *Treasure chest as the link and the treasure as the description.

    Map:

    Keys $ <leader>oli *Treasure chest <CR> the treasure <CR> <Esc>

    • <leader>oli asks for the link, then for its description.
    ** 7.1 Insert a link  ✓
    Put the cursor at the end of the =Map= line below, press
    =<leader>oli=, type =*Treasure chest= as the link and =the
    treasure= as the description.
    
    Map:the treasure
    
    *** Treasure chest
    You found it.
    
    ** 7.2 Follow a link  ✗
    Put the cursor on the link you made and press =<CR>=: the
    cursor jumps to =Treasure chest=. =<leader>ols= stores a link to
    where you are, for =<leader>oli= to offer later.
    
    * What next
    Well done! Continue with the second lesson, capture, the agenda and
    clocking:
    
      =:Org tutor workflow=
    
     basics.org                                                              182:35
    Description: the treasure
  17. 7.2 Follow a link

    Put the cursor on the link you made and press <CR>: the cursor jumps to Treasure chest. <leader>ols stores a link to where you are, for <leader>oli to offer later.

    Keys <CR>

    • <CR> on a link follows it: here, to a headline.
    Map:the treasure
    
    *** Treasure chest
    You found it.
    
    ** 7.2 Follow a link  ✓
    Put the cursor on the link you made and press =<CR>=: the
    cursor jumps to =Treasure chest=. =<leader>ols= stores a link to
    where you are, for =<leader>oli= to offer later.
    
    * What next
    Well done! Continue with the second lesson, capture, the agenda and
    clocking:
    
      =:Org tutor workflow=
    
    - =g?= lists every key; =:h org= is the manual.
    - examples/00-index.org links to one file per feature, each with many
      examples and exercises.
    
    ✓ Next lesson: 2. Capture, agenda and clocking (:Org tutor workflow)
     basics.org                                                               184:1
    Tutor "basics" done! Next lesson: 2. Capture, agenda and clocking (:Org tutor wo
    rkflow)

The lesson: tutor/org/basics.org · the recording: basics.cast (asciicast v2)

Try the syntax

Type some Org below, or start from an example: headlines, TODO keywords, tags, lists, checkboxes, tables, blocks, links, dates and markup are highlighted as you type. (This box only colors text; the editing happens in Neovim.)

Ready for the real thing?

Install org.nvim and run :Org tutor: the same lessons, in your editor, with every exercise checked as you do it.

Install org.nvim