Options
aliases
Aliases to symlink nvim to.
list of string
[ ]
[
"vi"
"vim"
]
desktopEntry
Whether to enable neovim's desktop entry.
boolean
true
false
enable
Whether to enable mnw (Minimal Neovim Wrapper).
boolean
false
true
extraBinPath
Extra packages to be put in neovim's PATH
list of package
[ ]
[
pkgs.rg
pkgs.fzf
]
extraBuilderArgs
Extra attributes to pass to mkDerivation.
attribute set of anything
{ }
{
doInstallCheck = true;
extraInstallCheckInputs = [ pkgs.hello ];
installCheckPhase = ''
hello
'';
}
extraLuaPackages
A function which returns a list of extra needed lua packages.
function that evaluates to a(n) list of package
ps: [ ]
ps: [ ps.jsregexp ]
initLua
lua config text to load at startup
strings concatenated with "\n"
""
''
require("myConfig")
''
initViml
VimL config text to load at startup
strings concatenated with "\n"
""
''
echomsg 'hello world'
''
luaFiles
lua config files to load at startup
list of path in the Nix store
[ ]
[
(pkgs.writeText "init.lua" ''
print('hello world')
'')
]
neovim
The neovim package to use. Must be unwrapped
package
pkgs.neovim-unwrapped
inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.system}.default
vimlFiles
VimL config files to load at startup
list of path in the Nix store
[ ]
[
(pkgs.writeText "init.vim" ''
echomsg 'hello world'
'')
]
wrapperArgs
A list of arguments to be passed to makeWrapper
list of string
[ ]
[
"--set-default"
"FZF_DEFAULT_OPTS"
"--layout=reverse --inline-info"
]
Plugins Configuration
plugins
neovim plugins.
submodule
{ }
{
plugins = {
# Plugins which can be reloaded without rebuilding
# see dev mode in the docs
dev.myconfig = {
# This is the recommended way of passing your config
pure = "myconfig";
impure = "/home/user/nix-config/nvim";
};
# List of plugins to load automatically
start = [
# you can pass vimPlugins from nixpkgs
pkgs.vimPlugins.lz-n
# To pass a directory
# ('plugins.dev.<name>' is preferred for directories)
{
name = "plugin";
src = ./plugin;
}
# Custom plugin example
{
# "pname" and "version"
# or "name" is required
pname = "customPlugin";
version = "1";
name = "customPlugin-1";
src = pkgs.fetchFromGitHub {
owner = "";
repo = "";
ref = "";
hash = "";
};
# Plugins can have other plugins as dependencies
# this is mainly used in nixpkgs
# avoid it if possible
dependencies = [];
}
];
# List of plugins to not load automatically
# (load with packadd or a lazy loading plugin )
opt = [
pkgs.vimPlugins.oil-nvim
];
};
}
plugins.dev
Plugins for use with devMode. You most likely want to put your config here. (automatically loaded)
attribute set of (submodule)
{ }
{
myconfig = {
pure = ./nvim;
impure = "/home/user/nix-config/nvim";
};
}
plugins.dev.<name>.impure
The impure absolute paths to the nvim plugin.
absolute path
/home/user/nix-config/nvim
plugins.dev.<name>.pure
The pure path to the nvim plugin.
attribute set of anything
./nvim
plugins.opt
Plugins to place in /opt (not automatically loaded)
list of (attribute set of anything)
[ ]
[ pkgs.vimPlugins.oil-nvim ]
plugins.start
Plugins to place in /start (automatically loaded)
list of (attribute set of anything)
[ ]
[ pkgs.vimPlugins.lz-n ]
Provider Configuration
providers.nodeJs.enable
Whether to enable and configure the Node.js provider.
boolean
false
true
providers.nodeJs.neovimClientPackage
The neovim-node-client package to use.
package
pkgs.neovim-node-client
pkgs.neovim-node-client
providers.nodeJs.package
The Node.js package to use.
package
pkgs.nodejs
pkgs.nodejs_23
providers.perl.enable
Whether to enable and configure the perl provider.
boolean
false
true
providers.perl.extraPackages
Extra packages to be included in the perl environment.
Note: you probably want to include NeovimExt and Appcpanminus if you change this from it's default value.
function that evaluates to a(n) list of package
p: [
p.NeovimExt
p.Appcpanminus
]
p: [
p.NeovimExt
p.Appcpanminus
]
providers.perl.package
The perl package to use.
package
pkgs.perl
pkgs.perl
providers.python3.enable
Whether to enable and configure the python3 provider.
boolean
false
true
providers.python3.extraPackages
Extra packages to be included in the python3 environment.
Note: you probably want to include pynvim if you change this from it's default value.
function that evaluates to a(n) list of package
p: [ ppynvim ]
py: [
py.pynvim
py.pybtex
]
providers.python3.package
The python3 package to use.
package
pkgs.python3
pkgs.python39
providers.ruby.enable
Whether to enable and configure the ruby provider.
boolean
false
true
providers.ruby.env
The ruby bundlerEnv to use.
package
pkgs.bundlerEnv {
name = "neovim-ruby-env";
gemdir = ../ruby_provider;
postBuild = '''
rm $out/bin/{bundle,bundler}
''';
}
pkgs.bundlerEnv {
name = "neovim-ruby-env";
gemdir = ../ruby_provider;
}
providers.ruby.package
The ruby package to use.
package
programs.mnw.providers.ruby.env.ruby
pkgs.ruby