The config is set up in key themes.
To enable all bindings use:
(evil-org-set-key-theme '(textobjects insert navigation additional shift todo heading))
These keys are always enabled
key | function | explanation |
---|---|---|
TAB | org-cycle | change folding level of current heading |
0 | evil-org-beginning-of-line | like 0 but can be special* |
$ | evil-org-end-of-line | like $ but can be special* |
I | evil-org-insert-line | like I but can be special* |
A | evil-org-append-line | like A but can be special* |
o | evil-org-open-below | like o but continue tables and items* |
O | evil-org-open-above | like O but continue tables and items* |
d | evil-org-delete | like d but keep tags aligned and fix lists |
x | evil-org-delete-char | like x but keep tables and tags aligned |
X | evil-org-delete-previous-char | like X but keep tables and tags aligned |
( | org-forward-sentence | next cell in table |
) | org-backward-sentence | previous cell in table |
{ | org-backward-paragraph | beginning of table |
} | org-forward-paragraph | end of table |
- Set
org-special-ctrl-a/e
tot
to makeorg-beginning-of-line
andorg-end-of-line
ignore leading stars or tags on headings. Repeat to toggle. By default it’s set tonil
. evil-org-insert-line
andevil-org-append-line
also respect the setting oforg-special-ctrl-a/e
.- The cases in which
o
andO
should behave special can be controlled usingevil-org-special-o/O
. By default it’s set to'(table-row item)
.
Context dependent dwim operators for:
- promoting/demoting on headings and items
- moving table columns
- changing indent in other contexts (when editing source code)
key | function | explanation |
---|---|---|
< | evil-org-< | Promote all headings in marked area |
> | evil-org-> | Demote all headings in marked area |
Variable evil-org-retain-visual-state-on-shift
controls whether the selection should be restored after promoting / indenting, which is helpful if you want to promote / indent multiple times. By default this variable is set to nil
.
Examples:
>>
to promote a heading>ar
to promote a tree<(
to swap a table column with the one on the leftvie2>
to move a table column two places to the right
If you want <
and >
to promote / demote headings and items on a single press, add the following to your org setup:
(evil-define-key 'normal evil-org-mode-map
(kbd ">") 'org-meta-right
(kbd "<") 'org-meta-left)
Or enable the additional key binding theme and use M-h
and M-l.
Experimental function bound to RET
.
Disabled by default. If enabled, it’s active in insert and emacs state.
Depending on context, it performs one of the following actions:
- When on an empty item or table row, abort or split the item list or table.
- When on a non-empty item or table row, continue the item list or table.
- Otherwise, insert a newline and indent.
This makes RET
more consistent with evil-org-open-above/below
(which are bound to o
and O
by default).
key | function |
---|---|
RET | evil-org-return |
Based on the following earlier work:
- https://github.com/calvinwyoung/org-autolist
- http://kitchingroup.cheme.cmu.edu/blog/2017/04/09/A-better-return-in-org-mode/
- The cases in which
RET
should behave special can be controlled usingevil-org-special-o/O
. By default it’s set to'(table-row item)
.
If you don’t want to use h/j/k/l,
you can customize evil-org-movement-bindings
.
key | function | explanation |
---|---|---|
gh | org-element-up | parent of element |
gj | org-forward-element | next element |
gk | org-backward-element | previous element |
gl | org-down-element | first subelement |
gH | evil-org-top | top-level heading |
key | function | examples |
---|---|---|
ae / ie | evil-org-an/inner-object | link, markup, table cell |
aE / iE | evil-org-an/inner-element | paragraph, code block, table row |
ar / ir | evil-org-an/inner-greater-element | item list, table |
aR / iR | evil-org-an/inner-subtree | subtree starting with a header |
ae/ie
select the smallest object or element at point. Can be repeated to select adjacent objects / elements.aE/iE
select the smallest element at point. Elements build up the structure of the document, so there is always an element at any point. Can be repeated to select adjacent elements.ar/ir
select smallest element that is a container of other elements. Can be repeated to select greater elements
Examples:
vae
to select a paragraphdaR
to delete a subtreeyiR
to yank the contents of a subtree
Disabled by default. When enabled, these bindings are available in org-calendar in both Evil and Emacs mode.
evil-org key | emacs key | explanation |
---|---|---|
M-h / M-l | S-left / S-right | next / previous day |
M-j / M-k | S-down / S-up | next / previous week |
M-S-h / M-S-l | M-S-left / M-S-right | next / previous month |
M-S-j / M-S-k | M-S-down / M-S-up | next / previous year |
C-f / C-b | M-v / C-v | scroll down /up |
If you don’t want to use hjkl, you can customize evil-org-movement-bindings
.
If you want to use these bindings even in insert mode, you can customize evil-org-use-additional-insert
.
key | function | On headings | On tables |
---|---|---|---|
M-h | org-metaleft | promote heading | move column left |
M-l | org-metaright | demote heading | move column right |
M-k | org-metaup | move subtree up | move column up |
M-j | org-metadown | move subtree down | move column down |
M-H | org-shiftmetaleft | promote subtree | delete column |
M-L | org-shiftmetaright | demote subtree | insert column |
M-K | org-shiftmetaup | move heading up | delete row |
M-J | org-shiftmetadown | move heading down | insert row |
Disabled by default.
If you don’t want to use hjkl, you can customize evil-org-movement-bindings
.
key | function | explanation |
---|---|---|
H | org-shiftleft | previous todo item |
L | org-shiftright | next todo item |
J | org-shiftdown | decrease priority |
K | org-shiftup | increase priority |
When point is not at a heading or item, these keys fall back on their binding in non-org modes. For example, you can still use J
to join lines when not at a heading. This behaviour can be configured using evil-org-want-hybrid-shift
. By default this option is set to t
.
Disabled by default.
key | function |
---|---|
t | org-todo |
T | org-insert-todo-heading |
M-t | org-insert-todo-subheading |
Disabled by default.
key | function |
---|---|
O | org-insert-heading |
M-o | org-insert-subheading |
These functions don’t have any bindings by default and aren’t well-maintained. You can bind them under C-c
or another leader key.
function | explanation |
---|---|
evil-org-open-links | opens links in selection |
evil-org-open-incognito | open link at point in incognito window |
evil-org-open-links
opens all links in a selection. Use RET
to open a single link.
evil-org-open-incognito
tries to open a link in a private window.