Thanks to visit codestin.com
Credit goes to github.com

Skip to content

a Zettelkasten note taking plugin

License

Notifications You must be signed in to change notification settings

wsdjeg/zettelkasten.nvim

Repository files navigation

zettelkasten.nvim

A Zettelkasten note taking plugin for Neovim

GitHub License GitHub Issues or Pull Requests GitHub commit activity GitHub Release luarocks

Features

  • 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

Installation

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

Usage

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

Picker sources

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

Calendar extension

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:

  1. Create a daily note
  2. Browse daily notes

Debug

debug zettelkasten.nvim with logger.nvim:

require('plug').add({
    {
        'wsdjeg/zettelkasten.nvim',
        depends = { { 'wsdjeg/logger.nvim' } },
    },
})

Screenshots

Self-Promotion

Like this plugin? Star the repository on GitHub.

Love this plugin? Follow me on GitHub.

Credits

Feedback

If you encounter any bugs or have suggestions, please file an issue in the issue tracker

About

a Zettelkasten note taking plugin

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Contributors 2

  •  
  •  

Languages