uuid: - value: 73dc2ac9-5e4c-4a24-984f-e6d04998323b langcode: - value: en type: - target_id: daily_email target_type: node_type target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7 revision_timestamp: - value: '2025-06-08T23:25:30+00:00' revision_uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 revision_log: { } status: - value: true uid: - target_type: user target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849 title: - value: 'Switching to NixVim' created: - value: '2025-06-08T23:00:00+00:00' changed: - value: '2025-06-08T23:25:30+00:00' promote: - value: false sticky: - value: false default_langcode: - value: true revision_translation_affected: - value: true path: - alias: /daily/2025/06/08/switching-nixvim langcode: en body: - value: |- I've been [a full-time Neovim user][0] 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][1], 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][2] 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][3]. [0]: /blog/going-full-vim [1]: /daily/2024/11/21/one-configuration-language-to-rule-them-all [2]: https://fulltimenix.com/episodes/contributing-to-nixpkgs-nixvim-with-gaetan-lepage [3]: https://github.com/nix-community/nixvim format: markdown processed: |
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.
summary: '' field_daily_email_cta: { }