You can always start by using your existing vimL config with neovim as it is compatible (plugins included) and then slowly convert your config to lua, which I can’t recommend enough, IMHO it’s a much better language and the lua plug-in ecosystem is amazing, aside from fugitive all my plugins are lua native and they are much better and more modern than their vimscript counterparts.
Ty friend! Same here :)
P.P.S. I object to the characterisation of vim as a small community. In my mind, which is obviously correct, vim is basically the ubiquitous text editor, and a few niche users use other editors.
I agree, perhaps better wording was in order, vim is very ubiquitous but people using vim/neovim as their daily driver and are enthusiastic enough to join communities and discussions about the subject, based on my anecdotal experience, are a small subset and somewhat “niche”.
Have you tried mini.surround
module from the most wonderful mini.nvim?
my config for it makes it behaves with the exact same keybinds as tpope’s vim surround with extra goodies (highlighting surrounds and lua bracket strings).
P.S. I highly recommend checking out the modules in mini.nvim
, the maintainer is a great coder and very nice and all hoa modules are top quality and far from “mini” in functionality.
I’m especially interested in using it to build a git repo to include my .vimrc
I have tried many different ways to manage my dotfiles across different systems, IMHO the best way is using a "git bare" repository, it takes a few minutes to wrap your head around how it works (your entire home being a "selective git repo") but thankfully yadm
makes this super easy and once you have it setup properly it's life changing.
What I like the most about it is the fact that there's no more manual trigger commands to copy/symlink the files, you work on the file directly and then commit directly (as your homefolder is essentially the git repo) and here's the best thing any command that works on git works with the yadm bare repo, so you can branch, rebase, revert commits, bisect, etc.
In my dot files I have a simple alias to yadm as follows: dot='/home/bhagwan/dots/yadm/yadm --yadm-repo /home/bhagwan/dots/yadm-repo-priv -C /home/bhagwan'
and I use it as git
command replacement for the yadm repo, say I want to see diff or status I would execute dot status
(or dot diff
respectively) and even have zsh command completeion for it with tab
.
If nothing else, use yadm just for this quote (from their homepage): When you are away from your own configurations, you are an orphaned refugee in unfamiliar and hostile surroundings :-)
If this peaked your interest, you can also checkout the bootstrap script for the yadm repo from my dotfiles.
I rushed to reply, read your comment again after and understood my own whoosh :)