Notes on seeking wisdom and crafting software

An upgrade day

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.

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.

  1. If you’ve used ranger file manager in Linux, you’re going to love lf.
  2. bat is an amazing cross platform cat replacement with syntax highlighting. And fzf has a great integration within vim. lf support is a nice add-on.
  3. glow helps preview markdown on the terminal. Again comes with a nice nvim integration via glow.nvim.
  4. autojump is cd on steroids with fuzzy match. It’s a life saver. If you’re looking for powershell integration, look no further.
  5. 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

  1. Don’t fix if it ain’t broken. And laziness of course.

  2. Subjective opinion. See https://github.com/vim/vim/issues/8606#issuecomment-884667566 for some numbers.