cmp-pandoc.nvim did not work sufficiently for my use case so far
(sometimes it did, most of the times it did not at all, every now and
again it sputtered some references to the list).
cmp-pandoc-references seems like a plugin kept relatively 'simple'
requiring no setup, a single `bibliography: ` line in the pandoc
meta-data header and it works flawlessly from there. I might delve
deeper at some point, especially with the papis.nvim integration, but
for now this is perfectly adequate.
Neorg is fine but not for me right now (especially with its own syntax
spec). zk seems to fit my workflow much better, this is the beginning of
trying it out.
This commit is a change to some of the foundational mappings I use
through my leader key: opening telescope searches and toggling several
additional display riders.
First of all, all telescope functionality has been subsumed under the
<leader>f prefix:
f (<leader>ff, that is) for finding files
F for grepping
h for finding hidden files
o for finding old files
b for finding buffers
l for searching git log
s for searching git status
c for finding git commits (for current file)
Aside from these (which are pretty massive changes for me), we have a
new leader prefix group for the (now freed) <leader>s:
o toggle symbols outline
m toggle minimap
s open the (mini.nvim) startup screen
We are not making use of vsnip anymore (replaced by luasnip in zero-lsp
package) but still had a couple of vsnip mappings that lead to erratic
<tab> key behavior.
Mini changed the configuration for its indentline module to use a table
instead of a function for its animation generation configuration.
This commit updates the config accordingly.
lsp-zero offers a simple to set-up lsp configuration which is based
around the plugins I use anyway (lsp, cmp, luasnip) but integrates them
very well. I add a few small quality of life things on top (cmp
completion for / search and for vim command mode) as well as a boatload
of custom completion sources but otherwise make use of the nice presets.
This has de-bloated my _cmp.lua settings somewhat and allows me to have
a simple treesitter and a simple(r) lsp setup!
Additionally, switched to mason.nvim to manage my lsp sources (and
linters), which is both the new hotness and actually really useful.
Allows portable installation of most lsp servers into neovim data
directory so they do not clutter any other directories or global
namespaces.
Added the previously important 'site' directory to the runtime path of
neovim so it stops complaining about not finding spell dictionaries on
starting up with a spell-enabled file.
Removed the notation velocity plugin for vim. I have not been making use
of it for ages and should I need a vim-internal way of digging through
my wiki I can probably find easier (and more clear) ways of doing so.
Nice plugin, but of no more use to me.
Switch to use the nice new nvim-internal keymapping functions.
Cartographer was a really useful plugin when they did not yet exist but
now everything I wanted to do can be done without a mapping plugin, so
it is time to remove it.
Switched to the neovim variant of quarto plugins since it may contain
improved integration with lsp and cmp - and offers completion and
diagnostics for code snippets *within* the overall markdown sources of
quarto, which is very exciting.
Migrated from packer.nvim to lazy.nvim - it gives really fast loading
times, easy lazy loading for any package and a snazzy package manager
overview page (invoked through `:Lazy`) which, importantly, all do not
rely on a compiled plugin list.
In essence it feels like an easier to manage and robust packer
replacement (even though packer is a really good manager as well) that
is well worth to switch to. Migration was pretty painless as well.
One thing I might do in the future is split up the plugin structure
itself from a single plugin list (which invokes plugin settings files)
to several files containing the plugins and their settings since it
might give more structure.
So far, my repl integration consisted of vim-slime and vim-ipython-cell.
I am basically purely working in the python repl for now and while the
two plugins (together with tmux) *worked* they didn't work well enough
that I used them in an extensive way. Just as often as I could make use
of their productivity enhacements, I had to wrangle with the plugins
themselves to get what I wanted out of them.
Hence the switch to magma. It integrates more deeply into python, and
neovim both - showing cell outputs in floating windows and so on.
It does not, on its own, recognize e.g. jupyter cells or quarto code
cells, so I have set up some simple key binds to improve
inter-operability between those. Especially [r and ]r to jump between
quarto cells and <localleader>R to execute the contents of the cell the
cursor is currently in may be of interest. They are fairly crude and
probably have edge cases where they will not work but until then they
provide an easy quality of life improvement.
Lastly, I silently added a plugin for markdown previews (that also
scrolls with the editing cursor). I don't foresee myself using it *too*
often but it might come handy for smaller articles and writing. It can
be invoked with <localleader>mp - a binding which I will no doubt also
have to overhaul at some point.
Added simple bibtex source display: Will show the bibtex entries
existing in the bib file set through `bibliography: path/to/mine.bib`.
Shows author, title, date on hovering.
Never used the compile script for years now, and I neither see that
changing nor the files being of any use anymore. They were something I
whipped up when I first started getting into Linux and bash scripting
(and as such a little nostalgic I suppose) but nothing that has actual
purpose anymore.
Added a quick way to fix the last spelling mistake: Use <c-s> while
writing (in insert mode) or localleader-s while in normal mode.
It will fix the mistake and keep your cursor at the current position.
Neovim sometimes errors out when enabling spelling without having all
the necessary spellfiles available. This ensures on setting up the
environment that a spellfile is downloaded.
Had to disable automatic formatting since it was messing with my
contributions to other git projects, if they did either not have a
formatter enabled (most of the time) or had different formatters or
those set up differently than this setup (fixable, but I don't think
it's worth the time).
Instead, formatting can be invoked with `<localleader>f`/`F` to format
or format and save respectively.
Updated buffer navigation to make use of the <c-w>hjkl paradigm instead
of the <c-hjkl> since it adheres closer to vanilla nvim and works better
with the new navigation features of Navigator.nvim.
Switched out the old distraction-free writing plugins for neovim
variants zen-mode and twilight by folke - they are simple (one command
to invoke zen-mode, mapped to `F11`, and that's it), they are written in
lua and they work together beautifully (invoking zen-mode also invokes
twilight paragraph highlighting).
With neovim 0.7 bringing autocmd bindings in lua, we can now rely on a
built-in api instead of having to use our own helper function. Last
missing migration is the lsp formatting autogroup.
Updated treesitter setting to remove use of deprecated 'maintained'
option and simply replaced it to use 'all' treesitter syntaxes (haven't
had a problem with it so far).
Changed blankline options slightly to remove annoying animations and
quick switching of which blankline it shows depending on where my cursor
is -- both proved to be too much of a distraction when I just need to
interact with the indentation context every now and again and it should
just allow me a quick glance at the indentation level the rest of the
time.
Replaced indentblankline and vim-commentary both with mini.nvim, which
has both as submodules.
Commentary is replaced exactly and without any end-user changes, simply
transferred to be included in the lua plugin instead.
Indent blankline is a bit simpler but brings with it a new text object
which can be interacted with through `ai` and `ii`, e.g. `vii` select in
current indentation or `dai` delete around current indentation - very
useful.
Also added fuzzy matching algorithm from mini.nvim to telescope as
default sorter.
While <leader>f searches files, now <leader><c-f> searches for hidden
files.
Simple addition but can be very useful if you work for example in
dotfolder directories or similar.
Now I just need to find a way to do the same for live_grep. The
functionality is there (live_grep can take the same `{hidden=true}`
argument as find_files) but terminal emulators don't distinguish between
<c-f> and <c-F> so there is no convenient mapping for it yet.