kiwi.nvim is a stripped down version of VimWiki for Neovim.
| VimWiki | kiwi.nvim |
|---|---|
| Multiple syntaxes | Sticks to markdown |
| Syntax highlights included | User can install Treesitter plugins markdown and markdown-inline if required |
| Keymaps like Backspace for autosave | Stick to manual saves and <C-o> to move back |
With kiwi.nvim, you can:
To do a quick start, press <Leader>ww (default is \ww) to go to your index
wiki file. By default, it is located in ~/wiki/index.md.
To register a different path for the wiki, you can specify the path inside the
setup function if required
Feed it with the following example:
# My knowledge base
- Tasks -- things to be done _yesterday_!!!
- Project Gutenberg -- good books are power.
- Scratchpad -- various temporary stuff.
Place your cursor on Tasks and press Enter to create a link. Once pressed,
Tasks will become [Tasks](./Tasks.md) and open it. Edit the file, save it.
To go back, you can press <C-o> to move to the previous file. Backspace is not
mapped to go back since we already have vim keybindings to move back.
A markdown link can be constructed from more than one word. Just visually
select the words to be linked and press Enter. Try it, with Project Gutenberg.
The result should look something like:
# My knowledge base
- [Tasks](./Tasks.md) -- things to be done _yesterday_!!!
- [Project Gutenberg](./Project_Gutenberg.md) -- good books are power.
- Scratchpad -- various temporary stuff.

kiwi.nvim has been tested on Neovim >= 0.7. It will likely work on older
versions but will not be officially supported.
kiwi.nvim is a standalone plugin.
Add the following to the plugin-configuration in your vimrc:
Plug 'serenevoid/kiwi.nvim'
Then run :PlugInstall.
use {
'serenevoid/kiwi.nvim'
}
-- init.lua:
{
'serenevoid/kiwi.nvim'
}
-- plugins/kiwi.lua:
return {
'serenevoid/kiwi.nvim'
}
For Lazy users,
{
'serenevoid/kiwi.nvim',
opts = {
{
name = "work",
path = "work-wiki"
},
{
name = "personal",
path = "personal-wiki"
}
},
keys = {
{ "<leader>ww", ":lua require(\"kiwi\").open_wiki_index()<cr>", desc = "Open Wiki index" },
{ "<leader>wp", ":lua require(\"kiwi\").open_wiki_index(\"personal\")<cr>", desc = "Open index of personal wiki" },
{ "T", ":lua require(\"kiwi\").todo.toggle()<cr>", desc = "Toggle Markdown Task" }
},
lazy = true
}
For others,
-- Setup Custom wiki path if required
require('kiwi').setup({
{
name = "work",
path = "work-wiki"
},
{
name = "personal",
path = "personal-wiki"
}
})
-- Note: The path will be created in user home directory
-- Use default path (i.e. ~/wiki/)
local kiwi = require('kiwi')
-- Necessary keybindings
vim.keymap.set('n', '<leader>ww', kiwi.open_wiki_index, {})
vim.keymap.set('n', 'T', kiwi.todo.toggle, {})
<Enter> -- In visual mode: Follow/Create wiki link, in Normal mode just follow<Tab> -- Find next wiki link.kiwi.nvimThis is a new project which aims to be a minimal wiki plugin which is very barebones and doesn't add features which a lot people doesn't use now. You can help by raising issues and bug fixes to help develop this project for the neovim community.