My Vim framework
Now for something entirely different… I’ve made a Vim framework (or however you wanna call it), it is in pretty solid shape already, I’m daily driving it and it’s very good, at least the resulting experience of working in Neovim (or Vim), hopefully code isn’t too awful, as I’m not very experienced in VimScript (nor Lua to be honest).
Yesterday I’ve written a https://github.com/voidekh/SigmaVimRc#what-is-sigma, that actually explains what it is. You might go and read it, but let me TLDR it for you, or just talk more about ideas I follow in SigmaVimRc (and in my workflow).
It all started when I discovered lazygit, and lazygit.nvim plugin which has integrated it into Neovim. External tool in my editor? Very cool. Later I had a little phase, when I switched from Neovim to Vim, and actually used it for work, and pretty much everything. And I loved it. The simplicity! But in the end I came back to my Neovim. Somewhere in between all of this, I started using nnn file manager as file picker, still going into using standalone tools instead of plugins. Also, when using Vim I had to come up with way of integrating lazygit into Vim… which turned out to be very easy with remote control enabled kitty:
nnoremap <leader>gg <Cmd>execute 'kitty @ launch lazygit -p' getcwd()
So, it launches lazygit in current working directory in a kitty pane. After figuring it out, I immediately removed lazygit plugin from my Neovim, as using one line of code instead of whole plugin (however cool it was), is the way I wanted to go. Add also fzf to the mix, which can be used outside Vim of course, as a bonus you can use Fzf inside of nnn.
And then came the idea of fully functional Vim and / or Neovim setup, that keeps it simple, uses simple solutions and does the things the UNIX way (one tool for one task). So, Vim does the editing and all that comes with it. Fzf does fuzzy finding. Nnn does file browsing, picking and generally working with files and directories. And of course lazygit does the git repos lazily - I always forget about, because it literally has no plugin to work perfectly integrated in this setup. Only catch is that you need kitty or tmux. Otherwise you might opt for lazygit.nvim plugin for Neovim. Vim sadly has no integration like this.
Telescope might be cool and all, but it’s still just a Neovim plugin, not usable outside of Neovim, unless you want to live in Neovim as it was Emacs.
So, you might want to check out SigmaVimRc on GitHub, and maybe also my video about it, the first one in series. I’m no Vim guru, but want to share some stuff that beginner or maybe more experienced vimmers can find useful.
This is also my first entry for bringback.blog.
Happy New Year, and happy vimmin’!
PS: It wasn’t that much TLDR was it?