A Zettelkasten note taking plugin for Neovim
- Features
- Installation
- Usage
- Picker sources
- Calendar extension
- Debug
- Screenshots
- Self-Promotion
- Credits
- Feedback
- Zettelkasten-style note taking in Neovim
- Create and browse notes efficiently
- Tag-based filtering and navigation
- Reference and backlink support
- Daily notes and calendar integration
- Optional picker integration
Using nvim-plug:
require('plug').add({
{
'wsdjeg/zettelkasten.nvim',
config = function()
require('zettelkasten').setup({
notes_path = '~/.zettelkasten',
templates_path = '~/.zettelkasten_template',
preview_command = 'pedit',
browseformat = '%f - %h [%r Refs] [%b B-Refs] %t',
})
vim.keymap.set('n', '<leader>mzb', '<cmd>ZkBrowse<cr>', { silent = true })
vim.keymap.set('n', '<leader>mzn', '<cmd>ZkNew<cr>', { silent = true })
end,
},
})Using luarocks
luarocks install zettelkasten.nvim
Commands:
| Command | description |
|---|---|
:ZkNew |
create new note |
:ZkBrowse |
list note in browser window |
Key bindings in browser window:
| key bindings | description |
|---|---|
F2 |
open zettelkasten tags sidebar |
<LeftRelease> |
filter notes based on cursor tag |
gf |
open the note |
Ctrl-l |
clear tags filter pattarn |
Ctrl-] / K |
preview note in vim preview-window |
[I |
list references in quickfix-window |
Ctrl-x Ctrl-u |
complete note id or tags |
Key bindings in zettelkasten notes buffer:
| key bindings | description |
|---|---|
<Leader>p |
paste image from clipboard |
zettelkasten.nvim also provides zettelkasten sources for picker.nvim, which can be opened by following command:
:Picker <source_name>
| source name | description |
|---|---|
| zettelkasten | fuzzy find zettelkasten notes |
| zettelkasten_tag | fuzzy find zettelkasten tags |
key bindings in zettelkasten source:
| key binding | description |
|---|---|
<Enter> |
open selected note |
<C-y> |
insert selected note's id to cursor position |
zettelkasten.nvim also provides an extension for calendar.nvim. It highlights dates that have Zettelkasten notes associated with them.
When pressing <Enter> on a date in the calendar, the following actions are available:
- Create a daily note
- Browse daily notes
debug zettelkasten.nvim with logger.nvim:
require('plug').add({
{
'wsdjeg/zettelkasten.nvim',
depends = { { 'wsdjeg/logger.nvim' } },
},
})Like this plugin? Star the repository on GitHub.
Love this plugin? Follow me on GitHub.
If you encounter any bugs or have suggestions, please file an issue in the issue tracker



