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. ↩