Manage your Zettelkasten with the help of neuron in {n}vim.
(This is an actively maintaned fork of ihsanturk/neuron.vim
that works with newer versions of neuron
and changes basically everything, with extra features, commands and different options.)
Plug 'junegunn/fzf.vim'
Plug 'fiatjaf/neuron.vim'
There are several ways to manage {n}vim plugins with home-manager. The current release has been tested with the programs.neovim
module (tracking nixpkgs-unstable) like so:
{
programs.neovim = {
enable = true;
plugins = with pkgs.vimPlugins; [
neuron-vim
# ...
];
};
# ...
}
vim
or nvim
. On nvim
it should
Most operations are executed in normal mode
gzZ
shows a list of backlinks. Selecting one will navigate to it.gzz
shows a list of all zettels, you can search their titles. Selecting one will navigate to it.gzi
to show the same gzz
list. Selecting one will insert a link to it right in front of the your cursor. gzI
instead will insert a folgezettel link ([[[...]]]
). You can also select a zettel from insert mode with <c-x><c-u>
or <c-x><c-y>
and then insert a normal link or a folgezettel link respectively.gzo
you'll navigate to that.gzl
inserts a link to the previous zettel you visited.
gzL
will do the same but with a folgezettel.gzu
goes back after editing another zettel type.
gzu
repeatedly will cycle between the two last visited zettels.gzU
goes back multiple times in the history of visited zettels (and gzP
will go forward).gzn
creates a new blank zettelgzN
creates a new zettel using the current word under the cursor as its title.
gzN
will instead use the selected text (only the first line if there are more than one selected). This will replace the selected text or current word with a link to the newly-created zettel.gzs
works like gzz
, but instead it searches the content of the zettels, not only the title. For this it calls the external command ag
.gzt
will allow you to insert new tags or gzT
will show you a list of existing tags to then insert.neuron.vim
uses a custom function to generate ids for new zettels that it creates, bypassing neuron new
completely. By default it generates a random hex string of 8 characters. You can hook into the process by defining a function g:CustomNeuronIDGenerator
in your .vimrc
that takes an optional title
argument. For example:
To make it use the title as kebab-cased ID (when using gzN
):
func! g:CustomNeuronIDGenerator(title)
return substitute(a:title, " ", "-", "g")
endf
If g:CustomNeuronIDGenerator
is not defined in your .vimrc
or returns an empty string, neuron.vim
will fall back to generating random IDs.