Orgmode clone written in Lua for Neovim
Installation • Docs • Showcase • Troubleshoot • Plugins • Contributing • Kudos
I keep this fork to personally customise the original nvim for my workflow on issues that are not easily solved through configuration tweaking or with plugin development.
Most of the changes are ugly fixes that once they are fixed upstream will be removed. Currently these fixes are:
- Allow the user to set the default todo keyword until #897 is solved
- Only show the overdue elements of the last three days in the agenda until #898 or #896 are solved
The fork is updated with upstream changes each night.
- Neovim 0.10.0 or later
Use your favourite package manager. We recommend lazy.nvim:
{
'nvim-orgmode/orgmode',
event = 'VeryLazy',
ft = { 'org' },
config = function()
-- Setup orgmode
require('orgmode').setup({
org_agenda_files = '~/orgfiles/**/*',
org_default_notes_file = '~/orgfiles/refile.org',
})
-- NOTE: If you are using nvim-treesitter with ~ensure_installed = "all"~ option
-- add ~org~ to ignore_install
-- require('nvim-treesitter.configs').setup({
-- ensure_installed = 'all',
-- ignore_install = { 'org' },
-- })
end,
}
For more installation options see Installation page.
Online docs is available at https://nvim-orgmode.github.io.
To view docs in orgmode format in Neovim, run :Org help
.
Vim help docs is available at :help orgmode.txt
- Open agenda prompt:
<Leader>oa
- Open capture prompt:
<Leader>oc
- In any orgmode buffer press
g?
for help
If you are new to Orgmode, see Getting started section in the Docs.
- Agenda view
- Search by tags/keyword
- Clocking time
- Repeatable dates, date and time ranges
- Capturing to default notes file/destination
- Archiving (archive file or ARCHIVE tag)
- Exporting (via
emacs
,pandoc
and custom export options) - Notifications (experimental, see issue #49)
- Calendar popup for easier navigation and date updates
- Various org file mappings:
- Promote/Demote
- Change TODO state
- Change dates
- Insert/Move/Refile headlines
- Change tags
- Toggle checkbox state
- Remote editing from agenda view
- Repeatable mapping via vim-repeat
- Agenda prompt:
- Agenda view (
a
):- Ability to show daily(
vd
)/weekly(vw
)/monthly(vm
)/yearly(vy
) agenda - Support for various date settings:
- DEADLINE: Warning settings - example:
<2021-06-11 Fri 11:00 -1d>
- SCHEDULED: Delay setting - example:
<2021-06-11 Fri 11:00 -2d>
- All dates - Repeater settings:
- Cumulate type:
<2021-06-11 Fri 11:00 +1w>
- Catch-up type:
<2021-06-11 Fri 11:00 ++1w>
- Restart type:
<2021-06-11 Fri 11:00 .+1w>
- Cumulate type:
- Time ranges - example:
<2021-06-11 Fri 11:00-12:30>
- Date ranges - example:
<2021-06-11 Fri 11:00-12:30>--<2021-06-13 Sun 22:00>
- DEADLINE: Warning settings - example:
- Properly lists tasks according to defined dates (DEADLINE,SCHEDULED,Plain date)
- Navigate forward (
f
)/backward(b
) or jump to specific date (J
) - Go to task under cursor in current window(
<CR>
) or other window(<TAB>
) - Print category from “:CATEGORY:” property if defined
- Ability to show daily(
- List tasks that have “TODO” state (
t
): - Find headlines matching tag(s) (
m
): - Search for headlines (and it’s content) for a query (
s
): - Advanced search for tags/todo kewords/properties
- Notifications (experimental, see issue #49)
- Clocking time
- Agenda view (
- Capture:
- Define custom templates
- Fast capturing to default notes file via
<C-c>
- Capturing to specific destination
<Leader>or
- Abort capture with
<Leader>ok
- Org files
- Clocking time
- Refile to destination/headline:
<Leader>or
- Increase/Decrease date under cursor:
<C-a>
/<C-x>
- Change date under cursor via calendar popup:
cid
- Change headline TODO state: forward
cit
or backwardciT
- Open hyperlink or date under cursor:
<Leader>oo
- Toggle checkbox:
<C-space>
- Toggle current line to headline and vice versa:
<Leader>o*
- Toggle folding of current headline:
<TAB>
- Toggle folding in whole file:
<S-TAB>
- Archive headline:
<Leader>o$
- Add archive tag:
<Leader>oA
- Change tags:
<Leader>ot
- Promote headline:
<<
- Demote headline:
>>
- Promote subtree:
<s
- Demote subtree:
>s
- Add headline/list item/checkbox:
<Leader><CR>
- Insert heading after current heading and it’s content:
<Leader>oih
- Insert TODO heading after current line:
<Leader>oiT
- Insert TODO heading after current heading and it’s content:
<Leader>oit
- Move headline up:
<Leader>oK
- Move headline down:
<Leader>oJ
- Highlighted code blocks (
#+BEGIN_SRC filetype
) Exporting (viaemacs
,pandoc
and custom export options)
Link to detailed documentation: DOCS
Check Plugins page for list of plugins.
NOTE: None of the Emacs Orgmode plugins will be built into nvim-orgmode. Anything that’s a separate plugin in Emacs Orgmode should be a separate plugin in here. The point of this plugin is to provide functionality that’s built into Emacs Orgmode core, and a good foundation for external plugins.
If you want to build a plugin, post suggestions and improvements on Plugins infrastructure issue.
- @dhruvasagar and his vim-dotoo plugin that got me started using orgmode. Without him this plugin would not happen.
- @milisims for writing a treesitter parser for org
- vim-orgmode for some parts of the code (mostly syntax)