Jump to content

Neovim: Difference between revisions

From Official NixOS Wiki
imported>Onny
Restructure and cleanup
DHCP (talk | contribs)
m Tips and Tricks: style: fix headings case
 
(63 intermediate revisions by 25 users not shown)
Line 1: Line 1:
[https://neovim.io Neovim] is a fork of [[Vim]] aiming to improve the codebase, allowing for easier implementation of APIs, improved user experience and plugin implementation.
<languages/>
{{low quality|reason=<translate>Most of the provided nix code snippets look out of context, lacking indication where the provided configuration belongs (e.g. home-manager, configuration.nix or elsewhere?). [[#Beginning]] is over too wordy.</translate>}}
{{infobox application
  |name=Neovim
  |image=Neovim-mark.svg
  |type=Text Editor
  |developer=Neovim Core Team & Community
  |firstRelease=November 1, 2015
  |latestRelease=Nvim 0.12.2 (April 22, 2026)
  |status=Active
  |license=[https://www.apache.org/licenses/LICENSE-2.0 Apache 2.0] (with parts under Vim license)
  |os=Cross-platform (Linux, macOS, Windows)
  |platform=Desktop
  |programmingLanguage=C, Lua, Vim Script
  |website=[https://neovim.io/ neovim.io]
  |github=neovim/neovim
  |bugTracker=[https://github.com/neovim/neovim/issues GitHub Issues]
  |documentation=[https://neovim.io/doc/ Official Documentation]
}}


== Installation ==
<translate>
<!--T:76-->
:''See also: <tvar name=vim>[[Special:MyLanguage/Vim|Vim]]</tvar>''


=== With Home Manager ===
<!--T:1-->
[https://neovim.io/ Neovim]<ref>Neovim Team, "Home - Neovim", Neovim Official Website, Last updated March 2025, Accessed June 2025. https://neovim.io/</ref> is a highly extensible and open source text editor that aims to improve upon and modernize the popular <tvar name=vim>[[Special:MyLanguage/Vim|Vim]]</tvar><ref>NixOS Wiki Community, "Vim", NixOS Wiki, Last edited 24 February 2025, Accessed June 2025. https://wiki.nixos.org/wiki/Vim</ref> editor. It's designed to be a drop-in replacement for Vim, maintaining compatibility with most Vim plugins and configurations while offering additional features and improvements. Neovim focuses on extensibility, usability, and performance.


[https://nixos.wiki/wiki/Home_Manager Home Manager] has a module for Neovim, which can be enabled via
<!--T:2-->
It introduces a powerful plugin architecture that allows for asynchronous plugin execution, which can significantly improve performance for certain operations. It also includes a built-in terminal emulator, allowing users to run shell commands directly within the editor. The project emphasizes code quality and maintainability, with a clean, well-documented codebase that makes it easier for developers to contribute.


   programs.neovim = {
== Installation == <!--T:3-->
    enable = true;
 
    extraConfig = <nowiki>''</nowiki>
==== Shell ==== <!--T:4-->
       set number relativenumber
 
     <nowiki>''</nowiki>;
<!--T:60-->
To temporarily use Neovim in a shell environment without modifying your system configuration, you can run:
</translate>
 
<syntaxhighlight lang="console">
$ nix-shell -p neovim
</syntaxhighlight>
 
<translate>
<!--T:61-->
This makes the Neovim editor available in your current shell. You can then launch Neovim by typing <code>nvim</code>.
 
==== System setup ==== <!--T:62-->
 
<!--T:63-->
To install Neovim system-wide, making it available to all users, add the following to your configuration:
</translate>
 
{{code|lang=nix|line=no|1=<translate><!--T:64--> # Example for /etc/nixos/configuration.nix</translate>
environment.systemPackages = [
  pkgs.neovim
];
 
<translate><!--T:65--> # User-specific installation (in ~/.config/nixpkgs/home.nix)</translate>
home.packages = [
   pkgs.neovim
];}}
 
<translate>
<!--T:66-->
After rebuilding your system with <code>nixos-rebuild switch</code> or <code>home-manager switch</code>, Neovim will be installed and accessible.
 
== Configuration == <!--T:7-->
 
==== Basic ==== <!--T:8-->
</translate>
 
{{code|lang=nix|line=no|1=<translate>
<!--T:39-->
# Global Configuration
</translate>
programs.neovim = {
  enable = true;
  defaultEditor = true;
};
 
<translate>
<!--T:40-->
# Home Configuration
</translate>
programs.neovim = {
  enable = true;
  extraConfig = ''
    set number relativenumber
  '';
};}}
 
<translate>
==== Advanced ==== <!--T:10-->
</translate>
 
{{code|lang=nix|line=no|1=<translate>
<!--T:41-->
# Global Configuration
</translate>
programs.neovim = {
  enable = true;
  defaultEditor = true;
  viAlias = true;
  vimAlias = true;
  configure = {
    customRC = ''
       set number
      set cc=80
      set list
      set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»
      if &diff
        colorscheme blue
      endif
     '';
    packages.myVimPackage = with pkgs.vimPlugins; {
      start = [ ctrlp ];
    };
   };
   };
};


More information about the module can be found here: [https://nix-community.github.io/home-manager/options.html#opt-programs.neovim.enable Home Manager Manual].
<translate>
<!--T:42-->
# Home Configuration
# You have to add the line below to set it as the default editor:
</translate>
programs.neovim.defaultEditor = true;}}


=== System-wide ===
<translate>
<!--T:12-->
== Tips and tricks ==
{{expand}}


If you do not use Home Manager, you can use the following code in your NixOS configuration:
==== Nix configuration frameworks ====


  programs.neovim = {
[https://github.com/nix-community/nixvim Nixvim] and [https://github.com/NotAShelf/nvf nvf] provide a framework for declaratively configuring neovim with [[Nix (language)|Nix]]. They support, among the other things, plugin configuration, as well as mixing in plain Lua config snippets.
    enable = true;
Linux and Darwin platforms are supported using standalone Nix, [[NixOS]] or [[Home Manager]] modules.
    defaultEditor = true;
  };


You can also manually add Neovim to your packages. This should only be used if the two version above do not work for you.
==== Package variations ==== <!--T:15-->


  environment.systemPackages = [ pkgs.neovim ];
<!--T:44-->
Have a look at the [https://github.com/nix-community/neovim-nightly-overlay Neovim Nightly Overlay]<ref>Nix Community, "neovim-nightly-overlay", GitHub, Last updated June 2025, Accessed June 2025. https://github.com/nix-community/neovim-nightly-overlay</ref> to install the most recent current nightly version of Neovim.


== Configuration ==
<!--T:16-->
You can run the master version via the following command:
</translate>


=== With Home Manager ===


Neovim shares most of its configuration with Vim. See the [[Vim|Vim page]] for more details on the use of both.
<syntaxhighlight lang="console">
$ nix run "github:nix-community/neovim-nightly-overlay"
</syntaxhighlight>


The Home Manager module does not expose many configuration options. Therefore, the easiest way to get started is to use the [https://nix-community.github.io/home-manager/options.html#opt-programs.neovim.extraConfig extraConfig] option.
<translate>
You can copy your old config or directly load your default Neovim config via:
==== Plugin management ==== <!--T:21-->
</translate>


   programs.neovim.extraConfig = lib.fileContents ../path/to/your/init.vim;
{{code|lang=nix|line=no|1=plugins = [
<translate>
  <!--T:49-->
# Example Plugin: nvim-tree-lua
</translate>
   pkgs.vimPlugins.nvim-tree-lua


To use Neovim as your default editor, you can set the <code>EDITOR</code> [https://search.nixos.org/options?show=environment.variables&type=packages&query=environment.variables environmental variable] to "nvim" by adding the following to your NixOS configuration:
<translate>
  <!--T:50-->
# Example Plugin: vim-startify with configuration
</translate>
  {
    plugin = pkgs.vimPlugins.vim-startify;
    config = "let g:startify_change_to_vcs_root = 0";
  }


   environment.variables.EDITOR = "nvim";
<translate>
   <!--T:51-->
# Example Plugin: nvim-colorizer-lua with Lua config
  # Due to how the runtimepath for Lua modules is processed, your configuration may require
  # packadd! plugin-name to require a module. A home-manager example:
</translate>
  {
    plugin = pkgs.vimPlugins.nvim-colorizer-lua;
    config = ''
      packadd! nvim-colorizer.lua
      lua << END
        require 'colorizer'.setup {
          '*';<translate> <!--T:52--> -- Highlight all files, but customize some others.</translate>
          '!vim';<translate> <!--T:53--> -- Exclude vim from highlighting.</translate>
        }
      END
    '';
  }


The Home Manager module does also expose options to automatically add <code>vi</code> and <code>vim</code> aliases.
<translate>
To use them, add the following to your Home Manager configuration:
  <!--T:54-->
# Example Plugin: nvim-treesitter with Lua config
</translate>
  {
    plugin = pkgs.vimPlugins.nvim-treesitter;
    config = ''
      packadd! nvim-treesitter
      lua <<EOF
        require'nvim-treesitter.configs'.setup {
          highlight = {
            enable = true,              <translate><!--T:55--> -- false will disable the whole extension</translate>
            disable = {},              <translate><!--T:56--> -- list of languages that will be disabled</translate>
          },
          incremental_selection = {
            enable = true,
            keymaps = {
              init_selection = "gnn",
              node_incremental = "grn",
              scope_incremental = "grc",
              node_decremental = "grm",
            },
          },
          textobjects = {
            select = {
              enable = true,
              lookahead = true,
              keymaps = {
                ["af"] = "@function.outer",
                ["if"] = "@function.inner",
                ["ac"] = "@class.outer",
                ["ic"] = "@class.inner",
              },
            },
          },
        }
      EOF
    '';
  }


   programs.neovim = {
<translate>
    viAlias = true;
  <!--T:57-->
    vimAlias = true;
# Installing grammars for tree-sitter
   };
  # Option 1: Install all grammar packages
   pkgs.vimPlugins.nvim-treesitter.withAllGrammars
 
  # Option 2: Install specific grammar packages
   # (pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.c p.java ]))


==== Installing Plugins ====
  <!--T:58-->
# Option 3: Installing grammars without Nix
  # Installing grammar packages through the built-in command can lead to errors.
  # The following Neovim command will install syntax highlighting for the C programming language: :TSInstall c
</translate>
];}}


Plugins can be installed using the <code>programs.neovim.plugins</code> option.
<translate>
You can add only the plugin, or the plugin with its corresponding config:
==== Pre-made distributions ==== <!--T:18-->


  programs.neovim.plugins = [
<!--T:45-->
    pkgs.vimPlugins.nvim-tree-lua
If you prefer not to configure your system manually, NixOS offers several predefined configurations and community-supported options. Here are a few of them:
    {
      plugin = pkgs.vimPlugins.vim-startify;
      config = "let g:startify_change_to_vcs_root = 0";
    }
  ];


If you only add the plugin, you can add the configuration as described above.
<!--T:19-->
* [https://www.lazyvim.org/ LazyVim]<ref>LazyVim Team, "Getting Started", LazyVim Official Website, © 2025, Accessed June 2025. https://www.lazyvim.org/</ref>
* [https://astronvim.com/ AstroNvim]<ref>AstroNvim Team, "AstroNvim", AstroNvim Official Website, N/A, Accessed June 2025. https://astronvim.com/</ref>
* [https://nvchad.com/ NVChad]<ref>Siduck, "NvChad", NvChad Official Website, © 2025, Accessed June 2025. https://nvchad.com/</ref>


An index of official packages can be found in on [https://search.nixos.org/packages?from=0&size=50&sort=relevance&type=packages&query=vimPlugins search.nixos.org].
<!--T:77-->
In addition to the official packages, there are several user maintained repositories, such as [https://github.com/m15a/nixpkgs-vim-extra-plugins vim-extra-plugins] or [https://github.com/NixNeovim/NixNeovimPlugins NixNeovimPlugins].
LazyVim, by default, will prevent loading plugins that are not managed by LazyVim. This includes all plugins installed via Nix. If you want to install plugins with both Nix and LazyVim, add the following to your LazyVim setup:
</translate>


=== With Home Manager ===
{{code|lang=lua|line=no|1=
require("lazy").setup(lazyPackages, {
  performance = {
    reset_packpath = false, -- so that plugins outside of lazy can be loaded
  },
})
vim.cmd("packloadall") -- load plugins outside of lazy
}}


The NixOS module does not have an <code>extraConfig</code> option as the Home Manager module does.
<translate>
Instead, you can use the <code>programs.neovim.configure</code> option as described [https://search.nixos.org/options?show=programs.neovim.configure&type=packages&query=neovim here].
<!--T:78-->
[https://github.com/folke/lazy.nvim/issues/402#issuecomment-2084997594 Source]


Similarly to the Home Manager module, to set Neovim as your default editor you have to set the <code>EDITOR</code> environment variable like this:
==== FHS wrapper ==== <!--T:67-->


  environment.variables.EDITOR = "nvim";
<!--T:68-->
You can create a custom neovim FHS wrapper
</translate>


Further, the NixOS module does also expose options to automatically add <code>vi</code> and <code>vim</code> aliases.
{{code|lang=nix|line=no|1=
To use them, add the following to your NixOS configuration:
{
  buildFHSEnv,
  writeShellScript,
  neovim,
}:
buildFHSEnv {
  name = "nvim-fhs";
  targetPkgs = pkgs: [ neovim ];


   programs.neovim = {
   runScript = writeShellScript "nvim-fhs.sh" ''
    viAlias = true;
    exec ${neovim}/bin/nvim "$@"
    vimAlias = true;
  '';
  };
}
}}


== Build Neovim using Nix ==
<!--T:FHS_WRAPPER_SOURCE-->
<translate>
<!--T:69-->
This FHS wrapper example is based on a contribution to nixpkgs<ref name="nixpkgs-pr-334032">NixOS, "Feature: Custom Neovim FHS Wrapper" (Pull Request #334032), GitHub, 2025, Accessed June 2025. https://github.com/NixOS/nixpkgs/pull/334032</ref>.
For an extended configuration that includes setting up <code>mason.nvim</code> with a similar FHS environment, see this [https://github.com/NixOS/nixpkgs/issues/281219#issuecomment-2284713258 NixOS/nixpkgs issue comment].


You can also compile Neovim using nix. For this, the Neovim GitHub page has more information on this:
<!--T:59-->
[https://github.com/neovim/neovim/wiki/Building-Neovim#nixos--nix Neovim Guide].
== Troubleshooting ==
{{expand}}


The Neovim repository also contains a flake.
==== lua-language-server: Dynamically linked executable error ==== <!--T:70-->
You can run the master version via the following command:


nix run "github:neovim/neovim?dir=contrib"
<!--T:71-->
In your <code>~/.local/state/nvim/lsp.log</code>, you have the following error:
</translate>


Finally, there is a [https://github.com/nix-community/neovim-nightly-overlay Neovim Nightly Overlay].
{{code|lang=text|line=no|1=[ERROR][2025-06-07 23:13:15] ...p/_transport.lua:36 "rpc" "lua-language-server" "stderr" "Could not start dynamically linked executable: /home/incogshift/.local/share/nvim/mason/packages/lua-language-server/libexec/bin/lua-language-server\nNixOS cannot run dynamically linked executables intended for generic\nlinux environments out of the box. For more information, see:\nhttps://nix.dev/permalink/stub-ld\n"}}


== Note on Lua plugins  ==
<!--T:LUA_LS_SO_REF-->
<translate>
<!--T:72-->
A solution for this issue can be found on Stack Overflow<ref name="so-lua-ls-dynlink">Stack Overflow Contributor, "Answer to 'Could not start dynamically linked executable... on NixOS'", Stack Overflow, 2025, Accessed June 2025. https://stackoverflow.com/a/78215911/27134695</ref>.


Due to how the `runtimepath` for Lua modules is [https://github.com/nanotee/nvim-lua-guide#a-note-about-packages processed], your configuration may require <code>packadd! plugin-name</code> to require a module. A home-manager example:
== See also == <!--T:73-->


  programs.neovim = {
<!--T:74-->
    plugins = [
* [[Home Manager]] – For declarative Neovim configuration at the user level: [https://nix-community.github.io/home-manager/options.html#opt-programs.neovim.enable Neovim module in Home Manager]
      {
* [https://neovim.io/doc/ Official Documentation] – Official Neovim documentation.
        plugin = nvim-colorizer-lua
* [https://search.nixos.org/options?channel=unstable&query=programs.neovim NixOS options for Neovim] – System-level Neovim configuration.
        config = <nowiki>''</nowiki>
* [https://discourse.nixos.org/search?q=neovim Neovim discussions on NixOS Discourse] – Community tips, troubleshooting, and use cases.
          packadd! nvim-colorizer.lua
          lua require 'colorizer'.setup()
        <nowiki>''</nowiki>;
      }
    ];
  }


== See Also ==
== References == <!--T:27-->
* [[Vim]]
</translate>
* [[Treesitter|Treesitter for Neovim]]


[[Category:Applications]]
[[Category:Applications]]
[[Category:CLI Applications]]
[[Category:Text Editor]]

Latest revision as of 16:00, 19 May 2026

⍼︎
This article or section is of low quality. Most of the provided nix code snippets look out of context, lacking indication where the provided configuration belongs (e.g. home-manager, configuration.nix or elsewhere?). #Beginning is over too wordy. Further information may be found in the related discussion page. Editors that are knowledgeable in this area are encouraged to expand it, otherwise this page could become a candidate for deletion.

Neovim

Text Editor Application

100%
Developer(s)Neovim Core Team & Community
Latest releaseNvim 0.12.2 (April 22, 2026)
StatusActive
Operating SystemCross-platform (Linux, macOS, Windows)
Platform(s)Desktop
Language(s)C, Lua, Vim Script
LicenseApache 2.0 (with parts under Vim license)
External links
Websiteneovim.io
GitHubneovim/neovim
Bug trackerGitHub Issues
DocumentationOfficial Documentation
See also: Vim

Neovim[1] is a highly extensible and open source text editor that aims to improve upon and modernize the popular Vim[2] editor. It's designed to be a drop-in replacement for Vim, maintaining compatibility with most Vim plugins and configurations while offering additional features and improvements. Neovim focuses on extensibility, usability, and performance.

It introduces a powerful plugin architecture that allows for asynchronous plugin execution, which can significantly improve performance for certain operations. It also includes a built-in terminal emulator, allowing users to run shell commands directly within the editor. The project emphasizes code quality and maintainability, with a clean, well-documented codebase that makes it easier for developers to contribute.

Installation

Shell

To temporarily use Neovim in a shell environment without modifying your system configuration, you can run:

$ nix-shell -p neovim

This makes the Neovim editor available in your current shell. You can then launch Neovim by typing nvim.

System setup

To install Neovim system-wide, making it available to all users, add the following to your configuration:

# Example for /etc/nixos/configuration.nix
environment.systemPackages = [
  pkgs.neovim
];

# User-specific installation (in ~/.config/nixpkgs/home.nix)
home.packages = [
  pkgs.neovim
];

After rebuilding your system with nixos-rebuild switch or home-manager switch, Neovim will be installed and accessible.

Configuration

Basic

# Global Configuration
programs.neovim = {
   enable = true;
   defaultEditor = true;
};

# Home Configuration
programs.neovim = {
  enable = true;
  extraConfig = ''
    set number relativenumber
  '';
};

Advanced

# Global Configuration
programs.neovim = {
  enable = true;
  defaultEditor = true;
  viAlias = true;
  vimAlias = true;
  configure = {
    customRC = ''
      set number
      set cc=80
      set list
      set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:»
      if &diff
        colorscheme blue
      endif
    '';
    packages.myVimPackage = with pkgs.vimPlugins; {
      start = [ ctrlp ];
    };
  };
};

# Home Configuration
# You have to add the line below to set it as the default editor:
programs.neovim.defaultEditor = true;

Tips and tricks

☶︎
This article or section needs to be expanded. Further information may be found in the related discussion page. Please consult the pedia article metapage for guidelines on contributing.

Nix configuration frameworks

Nixvim and nvf provide a framework for declaratively configuring neovim with Nix. They support, among the other things, plugin configuration, as well as mixing in plain Lua config snippets. Linux and Darwin platforms are supported using standalone Nix, NixOS or Home Manager modules.

Package variations

Have a look at the Neovim Nightly Overlay[3] to install the most recent current nightly version of Neovim.

You can run the master version via the following command:


$ nix run "github:nix-community/neovim-nightly-overlay"

Plugin management

plugins = [
  # Example Plugin: nvim-tree-lua
  pkgs.vimPlugins.nvim-tree-lua

  # Example Plugin: vim-startify with configuration
  {
    plugin = pkgs.vimPlugins.vim-startify;
    config = "let g:startify_change_to_vcs_root = 0";
  }

  # Example Plugin: nvim-colorizer-lua with Lua config
  # Due to how the runtimepath for Lua modules is processed, your configuration may require
  # packadd! plugin-name to require a module. A home-manager example:
  {
    plugin = pkgs.vimPlugins.nvim-colorizer-lua;
    config = ''
      packadd! nvim-colorizer.lua
      lua << END
        require 'colorizer'.setup {
          '*'; -- Highlight all files, but customize some others.
          '!vim'; -- Exclude vim from highlighting.
        }
      END
    '';
  }

  # Example Plugin: nvim-treesitter with Lua config
  {
    plugin = pkgs.vimPlugins.nvim-treesitter;
    config = ''
      packadd! nvim-treesitter
      lua <<EOF
        require'nvim-treesitter.configs'.setup {
          highlight = {
            enable = true,              -- false will disable the whole extension
            disable = {},               -- list of languages that will be disabled
          },
          incremental_selection = {
            enable = true,
            keymaps = {
              init_selection = "gnn",
              node_incremental = "grn",
              scope_incremental = "grc",
              node_decremental = "grm",
            },
          },
          textobjects = {
            select = {
              enable = true,
              lookahead = true,
              keymaps = {
                ["af"] = "@function.outer",
                ["if"] = "@function.inner",
                ["ac"] = "@class.outer",
                ["ic"] = "@class.inner",
              },
            },
          },
        }
      EOF
    '';
  }

  # Installing grammars for tree-sitter
  # Option 1: Install all grammar packages
  pkgs.vimPlugins.nvim-treesitter.withAllGrammars
  
  # Option 2: Install specific grammar packages
  # (pkgs.vimPlugins.nvim-treesitter.withPlugins (p: [ p.c p.java ]))

  # Option 3: Installing grammars without Nix
  # Installing grammar packages through the built-in command can lead to errors.
  # The following Neovim command will install syntax highlighting for the C programming language: :TSInstall c
];

Pre-made distributions

If you prefer not to configure your system manually, NixOS offers several predefined configurations and community-supported options. Here are a few of them:

LazyVim, by default, will prevent loading plugins that are not managed by LazyVim. This includes all plugins installed via Nix. If you want to install plugins with both Nix and LazyVim, add the following to your LazyVim setup:

require("lazy").setup(lazyPackages, {
   performance = {
     reset_packpath = false, -- so that plugins outside of lazy can be loaded
   },
 })
 vim.cmd("packloadall") -- load plugins outside of lazy

Source

FHS wrapper

You can create a custom neovim FHS wrapper

{
  buildFHSEnv,
  writeShellScript,
  neovim,
}:
buildFHSEnv {
  name = "nvim-fhs";
  targetPkgs = pkgs: [ neovim ];

  runScript = writeShellScript "nvim-fhs.sh" ''
    exec ${neovim}/bin/nvim "$@"
  '';
}

This FHS wrapper example is based on a contribution to nixpkgs[7]. For an extended configuration that includes setting up mason.nvim with a similar FHS environment, see this NixOS/nixpkgs issue comment.

Troubleshooting

☶︎
This article or section needs to be expanded. Further information may be found in the related discussion page. Please consult the pedia article metapage for guidelines on contributing.

lua-language-server: Dynamically linked executable error

In your ~/.local/state/nvim/lsp.log, you have the following error:

[ERROR][2025-06-07 23:13:15] ...p/_transport.lua:36	"rpc"	"lua-language-server"	"stderr"	"Could not start dynamically linked executable: /home/incogshift/.local/share/nvim/mason/packages/lua-language-server/libexec/bin/lua-language-server\nNixOS cannot run dynamically linked executables intended for generic\nlinux environments out of the box. For more information, see:\nhttps://nix.dev/permalink/stub-ld\n"

A solution for this issue can be found on Stack Overflow[8].

See also

References

  1. Neovim Team, "Home - Neovim", Neovim Official Website, Last updated March 2025, Accessed June 2025. https://neovim.io/
  2. NixOS Wiki Community, "Vim", NixOS Wiki, Last edited 24 February 2025, Accessed June 2025. https://wiki.nixos.org/wiki/Vim
  3. Nix Community, "neovim-nightly-overlay", GitHub, Last updated June 2025, Accessed June 2025. https://github.com/nix-community/neovim-nightly-overlay
  4. LazyVim Team, "Getting Started", LazyVim Official Website, © 2025, Accessed June 2025. https://www.lazyvim.org/
  5. AstroNvim Team, "AstroNvim", AstroNvim Official Website, N/A, Accessed June 2025. https://astronvim.com/
  6. Siduck, "NvChad", NvChad Official Website, © 2025, Accessed June 2025. https://nvchad.com/
  7. NixOS, "Feature: Custom Neovim FHS Wrapper" (Pull Request #334032), GitHub, 2025, Accessed June 2025. https://github.com/NixOS/nixpkgs/pull/334032