mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-27 07:26:46 +00:00
81 lines
2 KiB
Text
81 lines
2 KiB
Text
|
[[ch-hm-module]]
|
||
|
== Home Manager
|
||
|
|
||
|
The Home Manager module allows us to customize the different `vim` options. To use it, we first add the input flake.
|
||
|
|
||
|
[source,nix]
|
||
|
----
|
||
|
{
|
||
|
neovim-flake = {
|
||
|
url = github:notashelf/neovim-flake;
|
||
|
# you can override input nixpkgs
|
||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||
|
};
|
||
|
}
|
||
|
----
|
||
|
|
||
|
Followed by importing the HM module.
|
||
|
|
||
|
[source,nix]
|
||
|
----
|
||
|
{
|
||
|
imports = [ neovim-flake.homeManagerModules.default ];
|
||
|
}
|
||
|
----
|
||
|
|
||
|
Then we should be able to use the given module. E.g.
|
||
|
|
||
|
[source,nix]
|
||
|
----
|
||
|
{
|
||
|
programs.neovim-flake = {
|
||
|
|
||
|
enable = true;
|
||
|
# your settings need to go into the settings attrset
|
||
|
settings = {
|
||
|
vim.viAlias = false;
|
||
|
vim.vimAlias = true;
|
||
|
vim.lsp = {
|
||
|
enable = true;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
----
|
||
|
|
||
|
=== Custom vim/neovim plugins
|
||
|
|
||
|
It is possible to add custom plugins to your configuration by using the `vim.startPlugins` option and the this flake's lua DAG library.
|
||
|
|
||
|
Start by adding it to startPlugins. This example uses nvim-surround, but the process will be similar for other plugins as well.
|
||
|
|
||
|
[source,nix]
|
||
|
----
|
||
|
{
|
||
|
programs.neovim-flake = {
|
||
|
enable = true;
|
||
|
settings = {
|
||
|
vim.startPlugins = [ pkgs.vimPlugins.nvim-surround ];
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
----
|
||
|
|
||
|
Followed by requiring the plugin, should it need one, in the lua DAG. Please note that you're able to name the DAG to however you want, the name will add a `--SECTION <name>` in the init.vim, under which it will be initialized. `lib.nvim.dag.entryAfter ["name"]` could also be used to initialize a plugin only after a previous plugin has beeni initialize
|
||
|
Your final setup will likely look like this, where nvim-flake refers to your flake input or fetch.
|
||
|
|
||
|
[source,nix]
|
||
|
----
|
||
|
{
|
||
|
programs.neovim-flake = {
|
||
|
enable = true;
|
||
|
settings = {
|
||
|
vim.startPlugins = [ pkgs.vimPlugins.nvim-surround ];
|
||
|
luaConfigRC.nvim-surround = nvim-flake.lib.nvim.dag.entryAnywhere '' # nvim-flake is a reference to the flake. Please change this accordingly to your config.
|
||
|
require("nvim-surround").setup()
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
}
|
||
|
----
|