diff --git a/users/blake/dots/neovim/default.nix b/users/blake/dots/neovim/default.nix index 3e16764..84cb28d 100644 --- a/users/blake/dots/neovim/default.nix +++ b/users/blake/dots/neovim/default.nix @@ -9,15 +9,37 @@ enable = true; settings = { vim = { + globals = { + mapleader = " "; + maplocalleader = " "; + }; + vimAlias = true; + lsp.enable = true; statusline.lualine.enable = true; telescope.enable = true; autocomplete.nvim-cmp.enable = true; - lsp = { - enable = true; - }; + + keymaps = [ + # visual line movement (insert mode) + { key = ""; mode = [ "i" ]; action = "gk"; desc = "Visual Line Up (Insert)"; } + { key = ""; mode = [ "i" ]; action = "gj"; desc = "Visual Line Down (Insert)"; } + + # visual line movement (normal/visual) + { key = ""; mode = [ "n" "v" ]; action = "g"; desc = "Visual Line Up"; } + { key = ""; mode = [ "n" "v" ]; action = "g"; desc = "Visual Line Down"; } + + { key = "gd"; mode = [ "n" ]; action = "lua vim.lsp.buf.definition()"; desc = "Go to definition"; } + { key = "K"; mode = [ "n" ]; action = "lua vim.lsp.buf.hover()"; desc = "Hover info"; } + { key = "f"; mode = [ "n" ]; action = "lua vim.lsp.buf.format({ async = true })"; desc = "Format buffer"; } + ]; + + + + + options = { clipboard = "unnamedplus"; @@ -57,10 +79,14 @@ languages = { enableTreesitter = true; - nix.enable = true; + nix = { + enable = true; + + }; rust.enable = true; lua.enable = true; }; + }; }; };