_: 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" "j" "${telescope}.jumplist()") # pickers (luamap "n" "" "${telescope}.find_files()") (luamap "n" "f" "${telescope}.live_grep()") (luamap "n" "F" "${telescope}.find_files()") (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" "Telescope file_browser") # tab for indent/dedent (map "n" "" ">>_") (map "n" "" "<<_") (map "i" "" "") (map "v" "" ">gv") (map "v" "" "