- Moves `SPC m s' to `SPC m b'
- Adds many new org-clock and org-goto keybinds
- Replaces imenu/imenu-anywhere with goto and goto-all
- Adds SPC m s -> org-schedule
- Move SPC m b -> SPC m , (org-switchb)
This update focuses on improving the key UX of org tables.
- Adds new table localleader keys under `SPC m s'
- Adds new localleader keybinds
- New `s` prefix for table commands
- New `f`/`F` keybinds for footnotes
- New `'` keybind for `org-edit-special`
- New `r` keybind for `org-refile`
- Bind localleader keys for both evil and non-evil users
- Refactors org table API
- For evil users:
- Adds `zi` to toggle inline images
- Finalize insert-mode keybind scheme for evil users (ala excel/gdocs)
- C-{h,j,k,l} = move cursor between cells
- C-M-{h,j,k,l} = insert cells in direction
- C-M-S-{h,j,k,l} = swap cells in direction
- Remove ]s/[s keybinds in org-mode (rebound to ]c/[c); they overwrote
next/prev flyspell error commands (which are vim defaults)
- Remove ]S/[S because z= already exists
- Remove redundant ]s/[s global keybinds (already bound by evil)
- Mention missing and evil's flyspell keybinds in a comment
- Some buffer-local commands were removed from leader binds
- Some more commands were added to org's localleader
- Reformatted some leader keys so that lower/upper case keys are grouped
together, rather than apart.
- Add SPC-s-c and SPC-s-e for creating/using temporary snippets (with
auto-yasnippet).
[return] is treated as a different key (with higher precedence in GUI
Emacs), which means it overwrites RET behaviors bound elsewhere, like in
config/default or minor mode maps (like evil-multiedit's).
Now that doom-themes no longer imposes variable height heading fonts.
However, if you use them yourself, you may want to disable line numbers
there yourself via
(add-hook 'org-mode-hook #'doom|disable-line-numbers)
Attempts to address the elusive "invalid-function
org-preserve-local-variables" error mentioned in: #1116#1169, and
This error is otherwise avoided by running `bin/doom compile :plugins`
ob-async adds its own advice around org-babel-execute-src-block, which
directly interferes with Doom's lazy loader for babel
packages (sometimes bypassing it entirely). This ensures it can't do
that.
ob-async uses org-babel-load-languages to load babel packages in a child
process, but packages entered into the org-babel-load-languages variable
by Doom's lazy loader were misnamed. This caused load errors in the
child process.
The language-to-package resolution is now performed before it is entered
into org-babel-load-languages. Additionally, ob-async will now be lazy
loaded if it is available (and fail silently otherwise).
This would formerly update _all_ statistics cookies in the org document,
which can be terribly slow in large documents. This restricts that to
just the parent headlines of the subtree the cursor is in.
Previously, new TODO headers created with M-RET or M-S-RET (bound to
+org/insert-item) would use the first TODO keyword in org-todo-keywords
in the new header. This wouldn't necessarily match the previous header.
e.g.
* [ ] Item 1
* TODO |
This fix ensures new headers will preserve the correct header, even if
the previous one is in a DONE state.
* [ ] Item 1
* [ ] |