_: let map = mode: key: action: { inherit mode key action; }; luamap = mode: key: action: map mode key "lua ${action}"; telescope = "require('telescope.builtin')"; in { programs.nixvim.keymaps = [ (map "" "" "Lspsaga rename") (map "" "o" "Lspsaga outline") (map "" "." "Lspsaga code_action") # splitting (map "n" "s" "vertical sb") # jumplist (map "" "" "") # note: C-a is actually C-i, remapped through kitty. (luamap "n" "r" "${telescope}.jumplist()") (luamap "n" "R" "${telescope}.loclist()") # pickers (luamap "n" "" "${telescope}.find_files()") (luamap "n" "f" "${telescope}.live_grep()") (luamap "n" "t" "${telescope}.lsp_document_symbols()") (luamap "n" "T" "${telescope}.lsp_dynamic_workspace_symbols()") (luamap "n" "/" "${telescope}.current_buffer_fuzzy_find()") # last used pickers/searches (luamap "n" "p" "${telescope}.pickers()") (luamap "n" "m" "${telescope}.search_history()") # open buffers (luamap "n" "b" "${telescope}.buffers({sort_mru = true})") (luamap "n" "" "${telescope}.buffers({sort_mru = true})") # diagnostics (map "n" "d" "Trouble diagnostics toggle filter.buf=0") (map "n" "ad" "Trouble diagnostics toggle") (luamap "n" "]d" "vim.diagnostic.goto_next({ severity = vim.diagnostic.severity.ERROR, wrap=true })" ) (luamap "n" "[d" "vim.diagnostic.goto_prev({ severity = vim.diagnostic.severity.ERROR, wrap=true })" ) (luamap "n" "]w" "vim.diagnostic.goto_next({ wrap=true })") (luamap "n" "[w" "vim.diagnostic.goto_prev({ wrap=true })") # docs with control-d just like in autocomplete (map "n" "" "K") # expand macro (map "n" "em" "RustLsp expandMacro") # navigation (map "" "" "") (map "" "" "") (map "" "" "") (map "" "" "") (map "" "h" "") (map "" "l" "") (map "" "k" "") (map "" "j" "") # close buffer (map "" "c" "bd") # { # key = "/"; # action = "lua require('spectre').open_file_search({select_word=true})"; # } # (map "n" "t" "Neotree toggle") # tab for indent/dedent (map "n" "" ">>_") (map "n" "" "<<_") (map "i" "" "") (map "v" "" ">gv") (map "v" "" "