{ programs.nixvim.keymaps = [ # e - explore/edit { mode = "n"; key = "ef"; action = ":lua require('oil').open()"; options.desc = "File directory"; } { mode = "n"; key = "er"; action = ":lua require('grug-far').open()"; options.desc = "Search and replace"; } # f - find { mode = "n"; key = "f/"; action = ":Pick history scope='/'"; options.desc = "'/' history"; } { mode = "n"; key = "f:"; action = ":Pick history scope=':'"; options.desc = "':' history"; } { mode = "n"; key = "fa"; action = ":Pick git_hunks scope='staged'"; options.desc = "Added hunks (all)"; } { mode = "n"; key = "fA"; action = ":Pick git_hunks path='%' scope='staged'"; options.desc = "Added hunks (buffer)"; } { mode = "n"; key = "fb"; action = ":Pick buffers"; options.desc = "Buffers"; } { mode = "n"; key = "fd"; action = ":Pick diagnostic scope='all'"; options.desc = "Diagnostic (workspace)"; } { mode = "n"; key = "fD"; action = ":Pick diagnostic scope='current'"; options.desc = "Diagnostic (buffer)"; } { mode = "n"; key = "ff"; action = ":Pick files"; options.desc = "Search files"; } { mode = "n"; key = "fg"; action = ":Pick grep_live"; options.desc = "Grep"; } { mode = "n"; key = "fr"; action = ":Pick lsp scope='references'"; options.desc = "References (LSP)"; } { mode = "n"; key = "fs"; action = ":Pick lsp scope='workspace_symbol'"; options.desc = "Symbols (LSP, workspace)"; } { mode = "n"; key = "fS"; action = ":Pick lsp scope='document_symbol'"; options.desc = "Symbols (LSP, buffer)"; } # g - git { mode = "n"; key = "gg"; action.__raw = '' function() require('toggleterm.terminal').Terminal:new({ cmd = 'jjui', direction = 'float' }):toggle() end ''; options.desc = "jjui"; } # l - lsp/formatter { mode = "n"; key = "la"; action = ":lua vim.lsp.buf.code_action()"; options.desc = "Actions"; } { mode = "n"; key = "ld"; action = ":lua vim.diagnostic.open_float()"; options.desc = "Diagnostics popup"; } { mode = "n"; key = "lf"; action = ":lua require('conform').format({ lsp_fallback = true })"; options.desc = "Format"; } { mode = "n"; key = "li"; action = ":lua vim.lsp.buf.hover()"; options.desc = "Information"; } { mode = "n"; key = "lj"; action = ":lua vim.diagnostic.goto_next()"; options.desc = "Next diagnostic"; } { mode = "n"; key = "lk"; action = ":lua vim.diagnostic.goto_prev()"; options.desc = "Prev diagnostic"; } { mode = "n"; key = "lr"; action = ":lua vim.lsp.buf.rename()"; options.desc = "Rename"; } { mode = "n"; key = "lR"; action = ":lua vim.lsp.buf.references()"; options.desc = "References"; } { mode = "n"; key = "ls"; action = ":lua vim.lsp.buf.definition()"; options.desc = "Source definition"; } # other { mode = "n"; key = "sj"; action = ":lua require('mini.jump2d').start(require('mini.jump2d').builtin_opts.query)"; options.desc = "Jump to character"; } { mode = "n"; key = "a"; action = ":lua require('harpoon'):list():add()"; options.desc = "Add harpoon"; } { mode = "n"; key = ""; action = ":lua require('harpoon').ui:toggle_quick_menu(require('harpoon'):list())"; options.desc = "Toggle harpoon quick menu"; } { mode = "n"; key = "1"; action = ":lua require('harpoon'):list():select(1)"; options.desc = "Go to harpoon 1"; } { mode = "n"; key = "2"; action = ":lua require('harpoon'):list():select(2)"; options.desc = "Go to harpoon 2"; } { mode = "n"; key = "3"; action = ":lua require('harpoon'):list():select(3)"; options.desc = "Go to harpoon 3"; } { mode = "n"; key = "4"; action = ":lua require('harpoon'):list():select(4)"; options.desc = "Go to harpoon 4"; } ]; }