{ inputs, pkgs, ... }: { imports = [ inputs.nvf.homeManagerModules.default ./nvf/input.nix ./nvf/languages.nix ./nvf/ui.nix ./nvf/utilities.nix ]; home.sessionVariables.EDITOR = "nvim"; programs.nvf = { enable = true; enableManpages = true; settings.vim = { viAlias = true; vimAlias = true; options = { # Indentation autoindent = true; smartindent = true; expandtab = true; smarttab = true; wrap = true; shiftwidth = 2; tabstop = 2; foldlevel = 1000; # Open all folds by default # Search hlsearch = true; ignorecase = true; incsearch = true; smartcase = true; # case-sensitive if search contains uppercase # Visual number = true; cursorline = true; visualbell = true; termguicolors = true; # Input backspace = "indent,eol,start"; }; keymaps = [ { desc = "Open the file path under the cursor, making the file if it doesn't exist."; key = "gf"; mode = "n"; action = ":cd %:p:h:e "; silent = true; } { desc = "Delete the previous word."; key = ""; mode = "i"; action = ""; silent = true; } { desc = "Open the filetree."; key = "t"; mode = "n"; action = ":Yazi"; silent = true; } ]; luaConfigRC.turn_off_inline_diagnostics = # lua '' vim.diagnostic.config({ virtual_text = false -- turn off inline diagnostics }) ''; extraPlugins = with pkgs.vimPlugins; { yuck-vim = { package = yuck-vim; }; nvim-treesitter-parsers = { package = nvim-treesitter-parsers.yuck; }; nvim-parinfer = { package = nvim-parinfer; }; }; }; }; }