org.nvim

Keymaps reference

Every mapping is mappings.<section>.<action> = lhs | { lhs, ... } | false. <prefix> expands to mappings.prefix. mappings.disable_all = true turns off every mapping.

mappings = {
  prefix = "<localleader>",
  org = { toggle_checkbox = "<leader>x", open_at_point = "gx" },
  agenda = { later = "L", earlier = "H" },
}

Section global: agenda, capture, store_link, goto_heading, clock_goto, clock_out, clock_cancel.

Section org (default key: action):
  g?  help                          <Tab>  cycle
  <S-Tab>  global_cycle             <C-c><C-c>, <prefix><CR>  context_action
  <CR>, gx, <prefix>o  open_at_point
  <M-CR>  meta_return               <M-S-CR>  meta_shift_return
  <prefix>ih  insert_heading        <prefix>it  insert_todo_heading
  <prefix>is  insert_subheading     <prefix>id  insert_drawer
  <prefix>ib  insert_structure_template  <prefix>if  insert_footnote
  <prefix>i@  cite_insert
  <<  promote_heading               >>  demote_heading
  <s  promote_subtree               >s  demote_subtree
  <M-h> <M-l> <M-k> <M-j>  meta_left/right/up/down
  <M-Left> <M-Right>       meta_left/right (in addition to <M-h>/<M-l>)
  <M-Up> <M-Down>          meta_up/down (in addition to <M-k>/<M-j>)
  <M-H> <M-L> <M-K> <M-J>  shift_meta_left/right/up/down
  <prefix>K / J  move_subtree_up / move_subtree_down
  <prefix>hy hd hp hc  copy/cut/paste/clone_subtree
  <prefix>hs  sort                  <prefix>hn  narrow_subtree
  <prefix>hC  toggle_comment        <prefix>hA  toggle_archive_tag
  <prefix>*  toggle_heading         <prefix>-  toggle_item
  <prefix>E  emphasize              <prefix>hb  cycle_bullet
  <prefix>v  mark_element           <prefix>nb / ne  narrow_block / element
  g{  goto_parent                   ]] [[  next/prev_heading
  ][ []  next/prev_sibling          <prefix>.  buffer_goto
  cit / ciT  todo_next / todo_prev  <prefix>S  todo_select
  <S-Right>/<S-Left>  shift_right/shift_left
  <S-Up>/<S-Down>  shift_up/shift_down
  <C-a>/<C-x>  increment/decrement  <prefix>,  priority
  <prefix>t  set_tags               <prefix>p / P  set/delete_property
  <prefix>lI  id_get_create         <prefix>s / d  schedule / deadline
  <prefix>i. / i!  timestamp / timestamp_inactive
  <C-Space>  toggle_checkbox        <prefix>#  update_statistics
  <prefix>xi xo xq xj xe  clock_in/out/cancel/goto, set_effort
  <prefix>xE xm xz  inc_effort, clock_modify_effort, clock_resolve
  <prefix>xr xd xu xU  clock_report, clock_display, dblock_update(_all)
  <prefix>xv xV xl  link_preview, link_preview_refresh, latex_preview
  <prefix>C  column_view
  <prefix>li ls lt ln lp  insert/store_link, toggle_link_display,
                          next/prev_link
  <prefix>lL lA  insert_last_stored_link / insert_all_links
  <prefix>lg ly  id_goto / id_copy
  <prefix>r  refile   <prefix>$  archive_subtree   <prefix>A  attach
  <prefix>R  refile_copy
  <prefix>/  sparse_tree            <prefix>e  export
  <prefix>Tc T- Tf Ts Tr TR Ti TI   table_create, table_insert_hline,
      table_recalc, table_sort, table_insert/delete_row,
      table_insert/delete_column
  <prefix>Tt T#  table_transpose, table_rotate_marks
  <S-CR>  table_copy_down
  <prefix>'  edit_special
  <prefix>be bb bs bt bk bn bp      babel_execute(_buffer/_subtree),
      babel_tangle, babel_remove_result, babel_next/prev_block
  <prefix>bf bv bI bc bj            babel_tangle_file, babel_expand,
      babel_view_info, babel_check, babel_insert_header_arg
  <prefix>bg br bu bo bd bi         babel_goto_named(_result),
      babel_goto_head, babel_open_result, babel_demarcate,
      babel_lob_ingest
  <prefix>bl bz bZ bK               babel_load_in_session,
      babel_switch_to_session(_with_code), babel_kill_session
  <prefix>ba bh bm bx               babel_sha1_hash,
      babel_describe_bindings, babel_mark_block, babel_do_key_sequence

Section org_insert: meta_return <M-CR>, insert_tab <Tab> (table: next field; empty headline or item: cycle its level), table_prev_field <S-Tab>, table_next_row <CR>, table_copy_down <S-CR>. The table_next_field action is still available.

Sections emacs, emacs_insert and emacs_global add Emacs Org's own keys (org-mode-map) on top of the Vim-style keys, so muscle memory from Emacs works unchanged. Set a section to false to turn it off:

mappings = { emacs = false, emacs_insert = false, emacs_global = false }

C-c prefixed keys are normal-mode only (in Insert mode <C-c> still leaves Insert mode). Keys marked (ctx) depend on the cursor, like in Emacs. A count stands in for C-u (e.g. 4<C-c>. is C-u C-c .).

Global (emacs_global):
  <C-c>a  agenda        <C-c>c  capture        <C-c>l  store_link
Structure and visibility:
  <C-CR>           insert_heading (after the subtree; also Insert mode)
  <C-S-CR>         insert_todo_heading (also Insert mode)
  <C-c><CR>        (ctx) table: hline and move; else insert heading
  <C-c>*           (ctx) table: recalculate the row (count 4: the table,
                   16: iterate); else toggle heading
  <C-c>-           (ctx) table: hline; item: cycle bullet; else toggle item
  <C-c>^           (ctx) sort table column / entries / list items
  <C-c>;           toggle COMMENT       <C-c>@  mark (select) subtree
  <C-c><C-,>       structure template   <C-c><C-x>d  insert drawer
  <C-c><C-x>f      footnote             <C-c><C-x><C-f>  emphasize
  <C-c><C-x>@      citation (cite_insert)  <LeftRelease>  citation key
  <C-c>:           fixed-width          <C-c><C-*>  list to subtree
  <C-c><C-x><C-r>  radio button         <C-c><C-x>t  inline task
  <C-c><C-x>\      pretty entities      <C-M-t>  transpose elements
  <M-}> <M-{>      next / previous element
  <C-c><C-^> <C-c><C-_>  up / down element
  <C-c><M-f> <C-c><M-b>  next / previous block
  <C-c><C-x>c      clone subtree        <C-c><C-x>b  subtree in a split
  <C-c><C-x><M-w>  (ctx) copy table region / subtree
  <C-c><C-x><C-w>  (ctx) cut table region / subtree
  <C-c><C-x><C-y>  (ctx) paste table rectangle / subtree
  <C-c><C-k>       show branches        <C-c><Tab>  show children
                   (ctx) in a table: shrink / expand the column
  <C-c><C-Tab>     cycle even an archived subtree
  <C-c><C-r>       reveal context       <C-c><C-x>v  copy visible text
  <C-c><C-n> <C-p> next / previous heading
  <C-c><C-f> <C-b> next / previous sibling
  <C-c><C-u>       parent heading       <C-c><C-j>  go to heading
TODO, tags, properties:
  <C-c><C-t>       change TODO state (fast selection, or cycle when the
                   keywords have no keys; count 4: note, 16: next set,
                   64: ignore blocking, N: the Nth keyword; Visual: every
                   headline)
  <C-S-Right> <C-S-Left>  next / previous TODO keyword set
  <C-c>,  priority       <C-c><C-q>  tags        <C-c><C-x>p  property
  <C-c><C-x>P  property and value       <C-c><C-x>q  toggle tag groups
  <C-c><C-x>o  toggle ORDERED           <C-c><C-z>  add note
  <C-c>#  update statistics cookies     <C-c><C-x><C-b>  toggle checkbox
Dates:
  <C-c><C-s> <C-c><C-d>  schedule / deadline (count 4: remove; count 16:
                   delay / warning period; Visual: every headline)
  <C-c><C-x><C-t>  toggle the custom timestamp display
  <C-c>. <C-c>!    active / inactive timestamp (count: with time; count
                   16: now, no prompt)
  <C-c><           insert today         <C-c>>  open calendar
  <C-c><C-y>       evaluate time range (count: insert  2d 03:30)
Clock, effort, dynamic blocks, timers:
  <C-c><C-x><C-i>, <C-c><C-x><Tab>  clock in
  <C-c><C-x><C-x>  clock in last task   <C-c><C-x><C-o>  clock out
  <C-c><C-x><C-q>  cancel clock         <C-c><C-x><C-j>  go to clock
  <C-c><C-x><C-d>  clock sums (clock report: <prefix>xr, or <C-c><C-x>x;
                   <C-c><C-x><C-r> is the radio button, as in Emacs)
  <C-c><C-x>e      effort               <C-c><C-x>E  next allowed effort
  <C-c><C-x><C-e>  change clocked effort <C-c><C-x><C-z>  resolve clocks
  <C-S-Up> <C-S-Down>  shift CLOCK line timestamps
  <C-c><C-x><C-v>  image previews       <C-c><C-x><C-M-v>  refresh them
  <C-c><C-x><C-l>  LaTeX previews
  <C-c><C-x><C-u>  update dblock
  <C-c><C-x><C-c>  column view          <C-c><C-x>i  columnview block
  <C-c><C-x>x      insert dynamic block
  <C-c><C-x>0 _ ,  timer start / stop / pause-continue
  <C-c><C-x>. - ;  insert timer / timer item / countdown
  <C-c><C-x>g G    update all feeds / go to a feed inbox (org-feed)
Links, refile, archive, export:
  <C-c><C-l>  insert link    <C-c><C-o>  open at point (on a headline:
                             the entry's links)
  <C-c><M-l>  insert last stored link   <C-c><C-M-l>  insert all links
  <C-c>&      jump back from a followed link
  <C-c><C-x><C-n> <C-p>  next / previous link
  <C-c><C-w>  refile         <C-c>$, <C-c><C-x><C-s>  archive
  <C-c><C-x><C-a>  archive with archive_default_command
  <C-c><M-w>  copy to a refile target
  <C-c><C-M-w>  refile with refile.reverse_note_order inverted
  <C-c><C-x>a  ARCHIVE tag   <C-c><C-a>  attachments
  <C-c><C-x>A  archive to the Archive sibling
  <C-c>[ <C-c>]  add / remove file from agenda files (saved)
  <C-'> <C-,>  next agenda file   <C-c><C-x>< >  set / remove agenda lock
  <C-c>/  sparse tree        <C-c><C-e>  export     <C-c>'  edit special
  <C-c>\  tags / property match sparse tree
Tables:
  <C-c>|  create / convert region     <C-c>=  column formula
          (count: field formula)      <C-c>`  edit field (count 4: show
  <C-c>+  sum column / selection              shrunk column, 16: follow)
  <C-c>}  toggle @row/$col overlays   <C-c><Space>  blank field(s)
  <C-c>{  formula debugger            <C-c>?  field info
  <C-#>   rotate recalculation mark   <C-c>"a <C-c>"g  ASCII / gnuplot plot
  <C-c>~  convert to / from table.el, or insert a table.el table
Actions without default keys: table_recalculate, table_iterate,
table_recalc_buffer, table_toggle_column_width, table_shrink, table_expand,
table_edit_formulas, table_follow_field_mode, table_header_line_mode,
orgtbl_mode, orgtbl_insert_radio_table, orgtbl_send_table,
orgtbl_toggle_comment (also outside org buffers).
Babel (C-c C-v, each also with the Ctrl form, e.g. <C-c><C-v><C-e>):
  e execute   b buffer   s subtree   t tangle   k remove result
  n / p next / previous block   f tangle a file   v expand block
  I block info   c check header args   j insert header arg
  g go to named block   r go to named result   u go to block head
  o open result   d split / wrap block   i ingest into Library of Babel
  l load block into session   <C-z> show session   z session + edit buffer
  a block hash   h list bindings   x run keys in edit buffer
  <C-M-h> select block body

Section text_objects: inner_heading ih, around_heading ah, inner_subtree ir, around_subtree ar. Section agenda: see org-agenda. Section capture: finalize, kill, refile. Section edit_src: save_exit, abort, send_to_session (<C-c><C-c>, <prefix>e: blocks with a :session, org-babel-edit-special). Section beamer: beamer_select_environment <C-c><C-b>, only while org-beamer-mode is on.