{ config, inputs, pkgs, ... }: { imports = [inputs.nvf.homeManagerModules.default]; programs.nvf = { enable = true; settings.vim = { viAlias = true; vimAlias = true; keymaps = [ # alt backspace to delete word backwards { key = ""; mode = ["n"]; action = "nohlsearch"; } { key = "q"; mode = ["n"]; action = ":lua vim.diagnostic.setloclist()"; } { key = ""; mode = ["t"]; action = ""; } ] ++ builtins.map (x: { key = ""; action = ""; mode = "n"; }) ["h" "j" "k" "l"]; useSystemClipboard = true; ui = { smartcolumn.enable = true; # Changes cursor color depending on mode. illuminate.enable = true; # modes-nvim.enable = true; noice.enable = true; }; treesitter.enable = true; lsp = { lspconfig.enable = true; enable = true; formatOnSave = true; lightbulb.enable = true; lspSignature.enable = true; mappings = { hover = "h"; codeAction = "."; }; }; languages = { nix = { enable = true; format.enable = true; lsp.enable = true; treesitter.enable = true; }; ts = { enable = true; lsp.enable = true; treesitter.enable = true; extensions.ts-error-translator.enable = true; }; }; telescope = { enable = true; setupOpts.defaults.vimgrep_arguments = [ "${pkgs.ripgrep}/bin/rg" "--color=never" "--no-heading" "--with-filename" "--line-number" "--column" "--smart-case" "--hidden" ]; mappings.liveGrep = "/"; }; utility = { motion.precognition.enable = true; ccc.enable = true; }; mini.surround.enable = true; autopairs.nvim-autopairs.enable = true; binds.whichKey.enable = true; theme.enable = true; }; }; }