Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

enableMan

Install the man pages for Nixvim options.

Type: boolean

Default:

options.flake.isDefined && !isDarwin

Declared by:

enablePrintInit

Install a tool that shows the content of the generated init.lua file.

Run it using nixvim-print-init.

Type: boolean

Default:

true

Example:

false

Declared by:

package

The Neovim package to use.

Type: package

Default:

pkgs.neovim-unwrapped

Declared by:

autoconfigure

Whether to apply the Lua snippets that Nixpkgs plugins advise through passthru.initLua.

Some plugins need store paths in their Lua configuration, such as rocks-nvim’s luarocks executable.

Off by default, because the snippets come from Nixpkgs rather than from your configuration. When enabled, they run before every other part of the config, so anything you set yourself overrides them.

Type: boolean

Default:

false

Declared by:

autowrapRuntimeDeps

Whether to automatically add plugin runtime dependencies to the Neovim wrapper’s PATH.

Type: boolean

Default:

true

Declared by:

colorscheme

The name of the colorscheme to use

Type: null or string

Default:

null

Declared by:

env

Environment variables to set in the neovim wrapper.

Type: lazy attribute set of (string or absolute path or signed integer or floating point number)

Default:

{ }

Example:

{
  BAR_PATH = "/home/me/.local/share/bar";
  BAZ_MAX_COUNT = 1000;
  FOO = 1;
  INFER_MODE = "local";
  PI = 3.14;
}

Declared by:

extraConfigLua

Extra contents for the file

Type: strings concatenated with “\n”

Default:

""

Declared by:

extraConfigLuaPost

Extra contents for the file after everything else

Type: strings concatenated with “\n”

Default:

""

Declared by:

extraConfigLuaPre

Extra contents for the file before everything else

Type: strings concatenated with “\n”

Default:

""

Declared by:

extraConfigVim

Extra contents for the file, in vimscript

Type: strings concatenated with “\n”

Default:

""

Declared by:

extraLuaPackages

Extra lua packages to include with neovim

Type: function that evaluates to a(n) list of package

Default:

<function>

Declared by:

extraPackages

Extra packages to be made available to neovim, added to the start of PATH

Type: list of (null or package)

Default:

[ ]

Declared by:

extraPackagesAfter

Extra packages to be made available to neovim, added to the end of PATH

Type: list of (null or package)

Default:

[ ]

Declared by:

extraPlugins

List of vim plugins to install

Type: list of (null or package or (submodule))

Default:

[ ]

Declared by:

extraPython3Packages

Python packages to add to the PYTHONPATH of neovim.

Type: function that evaluates to a(n) list of package

Default:

p: with p; [ ]

Example:

p: [ p.numpy ]

Declared by:

files

Extra files to add to the runtimepath

Type: attribute set of (Nixvim configuration)

Default:

{ }

Example:

{
  "ftplugin/nix.lua" = {
    localOpts = {
      expandtab = true;
      shiftwidth = 2;
      tabstop = 2;
    };
  };
}

Declared by:

globalOpts

The configuration global options (vim.opt_global.*)

These options are overridden for buffers that have the same option set as a local option. If a configuration set in globalOpts seems to have no effect, check with :setglobal <option>?, :setlocal <option>? and move the option declaration into opts.

See :h option-list for all available options.

Type: attribute set of anything

Default:

{ }

Declared by:

globals

Global variables (vim.g.*)

Type: attribute set of anything

Default:

{ }

Declared by:

impureRtp

Whether to keep the (impure) nvim config directory in the runtimepath.

If disabled, the XDG config dirs nvim and nvim/after will be removed from the runtimepath. When wrapRc is enabled, the wrapper will also ignore system/XDG config dirs during startup.

Type: boolean

Default: Configured by your installation method: true when using the Home Manager module, false otherwise.

Declared by:

localOpts

The configuration local options (vim.opt_local.*)

These options are applied to the buffer on startup of neovim with the global options (opt_global) as a fallback. When opening a new buffer, e.g. with :new, the global options are used, making localOpts irrelevant for the new buffer.

See :h option-list for all available options.

Type: attribute set of anything

Default:

{ }

Declared by:

match

Define match groups

Type: attribute set of string

Default:

{ }

Example:

{
  ExtraWhitespace = "\\s\\+$";
}

Declared by:

opts

The configuration options, e.g. line numbers (vim.opt.*)

These options are set as global and local.

See :h option-list for all available options.

Type: attribute set of anything

Default:

{ }

Declared by:

path

Path of the file relative to the config directory

Type: string

Declared by:

type

Whether the generated file is a vim or a lua file

Read-only outside of files submodules.

Type: one of “vim”, “lua” (read only)

Default:

"lua"

Declared by:

viAlias

Symlink vi to nvim binary.

Type: boolean

Default:

false

Declared by:

vimAlias

Symlink vim to nvim binary.

Type: boolean

Default:

false

Declared by:

waylandSupport

Enable additional wayland support, such as wl-clipboard for wayland clipboard syncing.

Type: boolean

Default:

lib.meta.availableOn pkgs.stdenv.hostPlatform pkgs.wayland

Declared by:

withNodeJs

Enable Node provider.

Type: boolean

Default:

false

Declared by:

withPerl

Enable Perl provider.

Type: boolean

Default:

false

Declared by:

withPython3

Enable Python 3 provider.

Type: boolean

Default:

true

Declared by:

withRuby

Enable Ruby provider.

Type: boolean

Default:

true

Declared by:

wrapRc

Whether the config will be included in the wrapper script.

When enabled, the Nixvim config will be passed to nvim using the VIMINIT environment variable.

Type: boolean

Default: Configured by your installation method: false when using the Home Manager module, true otherwise.

Declared by: