I did a round of updates to my home box over past several weekends. It feels pretty good, and is almost comparable to my Linux based dev setup. Below are some notes for the curious terminal enthusiast.
Neovim
After postponing this one for years now1, I am so glad to finally take the
plunge. Native language server protocol integration is wonderful.
Similarly Lua feels tad faster2. Migration from vim
was as easy as
sourcing the vimrc
to start with.
I found nvy to be the perfect minimalist GUI for neovim. Supports
DirectWrite based text rendering with support for ligatures. Other alternatives
like the bundled neovim-qt
are feature rich but the rendering was not up to my
liking.
Notes on plugins.
- Startup time for
nvim
was quite slow at ~400ms. tweekmonster/startuptime.vim helped profile and measure as I started trimming the plugins. vim-plug
works great. I didn’t consider changing it too much.- For LSP, replaced
Coc
with nvim-lspconfig and nvim-lsp-installer for managing LSP servers. - Replaced
ale
with null-ls and trouble.nvim for linter integrations. - Tree sitter is amazing for syntax parsing and highlighting. Replace
vim-polyglot
with nvim-treesitter. Nerdtree
was a primary contributor to startup latency. Replaced with https://github.com/kyazdani42/nvim-tree.lua.
My configurations are in init.vim. For LSP related plugins, the configurations are lua based. See config.lua.
On Windows, neovim
looks for init.vim
in $env:AppData
, a trick is to set
$env:XDG_CONFIG_HOME=~\.config\
and let neovim
do all lookups there. This
also has the nice benefit of keeping the directory under source control.
Current startup time is ~250ms.
Where do you find these plugins? Neovimcraft is a great companion directory to Vim Awesome.
Wezterm
Wezterm replaces conemu for me. The biggest
selling point was the awesome configurability. And guess what it gives? A key
mapping that’s almost matching tmux
.
I couldn’t have asked for anything more.
My configuration is in .wezterm.lua.
A good font
With all the nerdfont patch business, I struggled a bit to find a working version of patched Cascadia Code. Scoop has a nerdfont bucket, but it has older patched versions.
Well someone automated patching with Github Actions. And we have Delugia
Code. Delugia is my defacto in vim guifont
and wezterm
. Works amazingly
well.
More commandline awesomeness
I will end this post with five more amazing tools.
- If you’ve used ranger file manager in Linux, you’re going to love lf.
- bat is an amazing cross platform
cat
replacement with syntax highlighting. Andfzf
has a great integration within vim.lf
support is a nice add-on. - glow helps preview markdown on the terminal. Again comes with a nice nvim
integration via
glow.nvim
. - autojump is
cd
on steroids with fuzzy match. It’s a life saver. If you’re looking for powershell integration, look no further. - lazygit is on my todo list to try out. I’m hoping it will replace fugitive.vim for me. Let’s see.
Finally, scoop is the missing package manager for Windows. Highly
recommended for the pacman
or yay
fans.
See you all in 2022.
Footnotes
-
Don’t fix if it ain’t broken. And laziness of course. ↩
-
Subjective opinion. See https://github.com/vim/vim/issues/8606#issuecomment-884667566 for some numbers. ↩