diff options
| author | scouckel <james.krinsky@gmail.com> | 2025-11-26 03:08:28 -0600 |
|---|---|---|
| committer | scouckel <james.krinsky@gmail.com> | 2025-11-26 03:08:28 -0600 |
| commit | 94f99ad3d4bb375d0d1296e4b2755057bd812fd9 (patch) | |
| tree | 84e784de30cdb8d818e388fd49db67246e5340d6 /modules/home-manager/nvf.nix | |
rebase
Diffstat (limited to 'modules/home-manager/nvf.nix')
| -rw-r--r-- | modules/home-manager/nvf.nix | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/modules/home-manager/nvf.nix b/modules/home-manager/nvf.nix new file mode 100644 index 0000000..0172a25 --- /dev/null +++ b/modules/home-manager/nvf.nix @@ -0,0 +1,115 @@ +{ pkgs, ... }: + +{ + programs.nvf = { + enable = true; + + settings.vim = { + viAlias = true; + vimAlias = true; + + lineNumberMode = "relNumber"; + + options = { + tabstop = 2; + shiftwidth = 0; + termguicolors = true; + }; + + keymaps = [ + { + key = "<leader>w"; + mode = "n"; + silent = true; + action = ":w<CR>"; + } + { + key = "<leader>x"; + mode = "n"; + silent = true; + action = ":wq<CR>"; + } + { + key = "<leader>ff"; + mode = "n"; + silent = true; + action = ":Telescope find_files<CR>"; + } + { + key = "<C-d>"; + mode = "n"; + silent = true; + action = "<C-d>zz"; + } + { + key = "<C-u>"; + mode = "n"; + silent = true; + action = "<C-u>zz"; + } + { + key = "<leader>n"; + mode = "n"; + silent = true; + action = ":noh<CR>"; + } + ]; + + lsp = { + enable = true; + servers.nixd.settings.nil.nix.autoArchive = true; + }; + + languages = { + enableTreesitter = true; + + nix.enable = true; + rust.enable = true; + ruby.enable = true; + java.enable = true; + }; + + treesitter = { + enable = true; + # context.enable = true; + highlight.enable = true; + }; + + telescope.enable = true; + + utility = { + motion = { + # hop.enable = true; + # leap.enable = true; + precognition.enable = true; + }; + }; + + visuals = { + rainbow-delimiters.enable = true; + }; + + extraPlugins = { + gruvbox-material = { + package = pkgs.vimPlugins.gruvbox-material; + setup = '' + vim.o.background = "dark" + vim.g.gruvbox_material_background = "hard" + vim.cmd("colorscheme gruvbox-material") + ''; + }; + }; + + autocmds = [ + { + event = [ "InsertEnter" ]; + command = "set norelativenumber"; + } + { + event = [ "InsertLeave" ]; + command = "set relativenumber"; + } + ]; + }; + }; +} |
