Furkanzmc / zettelkasten.nvim

A Vim Philosophy Oriented Zettelkasten Note Taking Plugin
The Unlicense
227 stars 10 forks source link
lua neovim neovim-plugin note-taking nvim zettelkasten zettelkasten-methodology

zettelkasten.nvim

zettelkasten.nvim is a Vim philosophy oriented Zettelkasten note taking plugin.

Using this plugin, you can:

  1. Create new notes with unique IDs (:help :ZkNew)

  2. List the places where a tag is used with :tselect tag_name or use Vim's own tag shortcuts for navigation.

  3. Use i_CTRL-X_CTRL-] to get a list of all the tags in your notes.

  4. Get a completion list of note references.

  5. Use K command to display context for a note ID.

  6. Use gf to navigate to a reference. As long as your :help path option is set correctly, this will work.

There's no separate file type for zettelkasten. Markdown file type is used to extend the functionality to make it easier to take notes.

For the most up to date information, please do :help zettelkasten.txt. I won't be updating README file for every single feature or update. You can also check out the wiki for tips and tricks on how to use zettelkasten.nvim.

Demo

Click the image for a demo.

demo

Installation

Install using your favorite plugin manager.

Configuration

See :help zettelkasten.txt for more information.

TODO

Potential ideas to implement in the future:

Project Goals

I started the project out of a bout of excitement for having discovered the Zettelkasten note taking system. I've been looking for better ways to take notes and this system seems to fulfill my needs. Since I love Vim, and Zettelkasten is a text based system (Which is what I love the most about it), I decided to create a plugin immediately.

My goal is not to turn this into a huge thing with custom pickers, and file types, and a gazillion mapping and commands. My goal is to make use of the existing Vim options/mappings/features to extend markdown file type so it's more convenient to navigate, discover, and write.

As you can see from its initial state, the only thing you need to really know about this plugin is the :ZkNew command. Everything else can be discovered as you are flexing your usual Vim muscles (e. gf, i_CTRL-X_CTRL-], CTRL-]).

In true Vim philosophy, I also want to make it easier for people to extend this plugin to their own needs. So, all the Lua API will be nicely designed so you can interface this plugin with others (e.g Telescope.nvim) or create your own workflow easily.

Please also see :help zettelkasten.nvim-101 and :help zettelkasten-philosophy.

Related Projects