Skip to main content

Switching to NixVim

I've been a full-time Neovim user since July 2021.

I've used Nix since September 2022, when I migrated my dotfiles from using Ansible to use Nix and Home Manager.

My Neovim configuration has gone through several iterations to what it is today.

I've used Nix for a while to install plugins for Neovim, but the configuration was all written in Lua files which were placed by Home Manager into the correct directory.

Now, I've switched to using a project called NixVim.

It enables configuring Neovim using the Nix language, which is converted to Lua code behind the scenes.

Doing this makes my configuration files more consistent and easier to maintain, and reduced the amount of code I needed for my Neovim configuration.

Most of the configuration in Nix is equivalent to the options in Lua, but there are some great settings like plugins.lsp.enable and plugins.cmp.enable that make it easy to configure language servers and completion.

I've also found a great episode about this on the Full Time Nix podcast that I'd recommend to find out more.

If you're interested in Nix and/or Neovim, give NixVim a look.

Was this interesting?

Subscribe to my daily newsletter for software professionals on software development and delivery, Drupal, DevOps, community, and open-source.

About me

Picture of Oliver

I'm a certified Drupal Triple Expert and former Drupal Association staff member with 18 years of experience, a Drupal core contributor, public speaker, live streamer, and host of the Beyond Blocks podcast.