Port of Org-roam to neovim using nvim-orgmode.
Main branch requires neovim 0.11.0+. For all tagged versions, see installation table to find the supported neovim version.
This plugin depends on nvim-orgmode/orgmode 0.7.0 or newer.
It is recommended to install and maintain the latest version of orgmode, or lock into the commit that this plugin needs, which is illustrated below.
| Org Roam Version | Orgmode Version | Neovim Version |
|---|---|---|
| 0.2.0 | 0.7.0 | 0.10.2+ |
| 0.1.1 | 0.3.7 | 0.9.4+ |
| 0.1.0 | 0.3.4 | 0.9.2+ |
Code Example
{
"chipsenkbeil/org-roam.nvim",
tag = "0.2.0",
dependencies = {
{
"nvim-orgmode/orgmode",
tag = "0.7.0",
},
},
config = function()
require("org-roam").setup({
directory = "~/org_roam_files",
-- optional
org_files = {
"~/another_org_dir",
"~/some/folder/*.org",
"~/a/single/org_file.org",
}
})
end
}Code Example
use {
"chipsenkbeil/org-roam.nvim",
tag = "0.2.0",
requires = {
{
"nvim-orgmode/orgmode",
tag = "0.7.0",
},
},
config = function()
require("org-roam").setup({
directory = "~/orgfiles",
})
end
}| Name | Keybinding | Filetype | Description |
|---|---|---|---|
| capture | <Leader>nc | Global | Opens org-roam capture window. |
| find_node | <Leader>nf | Global | Finds node and moves to it, creating it if it does not exist. |
| add_alias | <Leader>naa | Org | Adds an alias to the node under cursor. |
| add_origin | <Leader>noa | Org | Adds an origin to the node under cursor. |
| complete_at_point | <Leader>n. | Org | Completes the node under cursor. |
| goto_next_node | <Leader>nn | Org | Goes to the next node in sequence (via origin) for the node under cursor. |
| goto_prev_node | <Leader>np | Org | Goes to the prev node in sequence (via origin) for the node under cursor. |
| insert_node | <Leader>ni | Org | Inserts node at cursor position, creating it if it does not exist. |
| insert_node_immediate | <Leader>nm | Org | Same as insert_node, but skips opening capture buffer. |
| quickfix_backlinks | <Leader>nq | Org | Opens the quickfix menu for backlinks to the current node under cursor. |
| remove_alias | <Leader>nar | Org | Removes an alias from the node under cursor. |
| remove_origin | <Leader>nor | Org | Removes the origin from the node under cursor. |
| toggle_roam_buffer | <Leader>nl | Org | Toggles the org-roam node-view buffer for the node under cursor. |
| toggle_roam_buffer_fixed | <Leader>nb | Org | Toggles a fixed org-roam node-view buffer for a selected node. |
NOTE: All dailies keybindings are global
| Name | Keybinding | Description |
|---|---|---|
| capture_date | <Leader>ndD | Capture a specific date’s note. |
| capture_today | <Leader>ndN | Capture today’s note. |
| capture_tomorrow | <Leader>ndT | Capture tomorrow’s note. |
| capture_yesterday | <Leader>ndY | Capture yesterday’s note. |
| find_directory | <Leader>nd. | Navigate to dailies note directory. |
| goto_date | <Leader>ndd | Navigate to specific date’s note. |
| goto_next_date | <Leader>ndf | Navigate to the next note in date sequence. |
| goto_prev_date | <Leader>ndb | Navigate to the previous note in date sequence. |
| goto_today | <Leader>ndn | Navigate to today’s note. |
| goto_tomorrow | <Leader>ndt | Navigate to tomorrow’s note. |
| goto_yesterday | <Leader>ndy | Navigate to yesterday’s note. |
See DOCS.org for detailed guidance on the plugin.
The documentation is also generated in vimdoc help format, which can be
accessed via :h org-roam.txt.
A collection of features to implement in no particular order.
- [-] Implement org-roam buffer
- [X] Implement org-roam-buffer-toggle (tracks current node at point)
- [X] Implement org-roam-buffer-display-dedicated (tracks specific node)
- [X] Implement Backlinks widget for buffer
- View (preview of) nodes that link to this node
- [ ] Implement Reference Links widget for buffer
- Nodes that reference this node (see Refs)
- [ ] Implement Unlinked references widget for buffer
- View nodes that contain text that match the nodes title/alias but are not linked
- [X] Implement Origin widget for buffer (custom, not in Org Roam!)
- Displays the origin of the node as defined in
ROAM_ORIGIN
- Displays the origin of the node as defined in
- [ ] Support citations
- [ ] As of orgmode 9.5, org-cite is built-in and has the form [cite:@key]
- [ ] Alongside org-cite, there is also support for org-ref (v2 & v3), which uses cite:key as its format
- [X] Support completion
- [X] Support templating
- [X] Implement org-roam-node-insert
- [X] Implement org-roam-node-find
- [X] Implement org-roam-capture
- [X] Implement org-roam-node-insert-immediate
- [X] Support origin (custom, not in Org Roam!)
- [X]
ROAM_ORIGINavailable within node properties, containing org id - [X] Ability to query database for nodes with origin matching an id
- [X] Keybinding to jump forward and backward across origins
- [X]
- [X] Miscellaneous Roam functions
- [X] Implement org-roam-alias-add
- [X] Implement org-roam-alias-remove
- [X] Implement org-roam-origin-add (custom, not in Org Roam!)
- [X] Implement org-roam-origin-remove (custom, not in Org Roam!)
- [-] Implement extensions
- [X] org-roam-dailies
- [ ] org-roam-export
- [ ] org-roam-graph
- [ ] org-roam-protocol
A makefile is provided to support running tests. It will download plenary.nvim and nvim-orgmode into the vendor directory.
make test