local keymap = vim.keymap local opts = { noremap = true, silent = true } -- a keymap.set('n', "aa", "@:", {desc="execute last command again" }) -- b for buffer keymap.set('n', "bq", "q", {desc="quit" }) keymap.set('n', "bs", "w", {desc="save" }) keymap.set('n', "br", "e!", {desc="reload" }) keymap.set('n', "bd", "BufferClose", {desc="close buffer" }) keymap.set({'n','v'}, "b/", "CommentToggle", {desc="toggle comment" }) -- c keymap.set('n', "cs", "SymbolsOutline", { desc = "Symbols Outline" }) -- D keymap.set('n', "Dt", "TroubleToggle", {desc="trouble" }) keymap.set('n', "Dw", "TroubleToggle lsp_workspace_diagnostics", {desc="workspace" }) keymap.set('n', "Dd", "TroubleToggle lsp_document_diagnostics", {desc= "document" }) keymap.set('n', "Dq", "TroubleToggle quickfix", {desc= "quickfix" }) keymap.set('n', "Dl", "TroubleToggle loclist", {desc= "loclist" }) keymap.set('n', "Dr", "TroubleToggle lsp_references", {desc= "references" }) -- d keymap.set('n', "dd", "lua vim.lsp.diagnostic.show_line_diagnostics()", {desc= "show diagnostics" }) keymap.set('n', "dc", "lua require'dap'.continue()", {desc= "continue" }) keymap.set('n', "db", ':lua require"dap".toggle_breakpoint()', {desc= "Toggle Breadpoint" }) keymap.set('n', "dj", ':lua require"dap".step_over()', {desc= "step over" }) keymap.set('n', "dk", ':lua require"dap".step_out()', {desc= "step out" }) keymap.set('n', "dl", ':lua require"dap".step_into()', {desc= "step into" }) keymap.set('n', "du", ':lua require"dap".up()', {desc= "up" }) keymap.set('n', "d_", ':lua require"dap".disconnect();require"dap".stop();require"dap".run_last()', {desc= "disconnect" }) keymap.set('n', "di", ':lua require"dap.ui.variables".visual_hover()', {desc= "visual_hover" }) keymap.set('n', "ds", ':lua local widgets=require"dap.ui.widgets";widgets.centered_float(widgets.scopes)', {desc= "centered_float" }) -- f keymap.set('n', "fm", "lua require'utils'.open_md()", {desc= "open a markdown file in vscode" }) keymap.set('n', "fs", "w", {desc= "save file" }) keymap.set('n', "ft", "NvimTreeToggle", {desc= "toggle nvim tree" }) keymap.set('n', "fr", "RnvimrToggle", {desc= "toggle rnvimr" }) keymap.set('n', "fy", "lua require'utils'.yank_filepath()", {desc= "copy the file path" }) keymap.set('n', "fd", "lua require'utils'.yank_file_dir()", {desc= "copy the file path" }) keymap.set('n', "fl", "NvimTreeFindFile", {desc= "find file" }) -- g keymap.set('n', "gj", "lua require 'gitsigns'.next_hunk()", {desc= "Next Hunk" }) keymap.set('n', "gk", "lua require 'gitsigns'.prev_hunk()", {desc= "Prev Hunk" }) keymap.set('n', "gl", "lua require 'gitsigns'.blame_line()", {desc= "Blame" }) keymap.set('n', "gp", "lua require 'gitsigns'.preview_hunk()", {desc= "Preview Hunk" }) keymap.set('n', "gr", "lua require 'gitsigns'.reset_hunk()", {desc= "Reset Hunk" }) keymap.set('n', "gR", "lua require 'gitsigns'.reset_buffer()", {desc= "Reset Buffer" }) keymap.set('n', "gs", "lua require 'gitsigns'.stage_hunk()", {desc= "Stage Hunk" }) keymap.set('n', "gS", "lua require 'gitsigns'.stage_buffer()", {desc= "Stage Buffer" }) keymap.set('n', "gu", "lua require 'gitsigns'.undo_stage_hunk()", {desc= "Undo Stage Hunk", }) keymap.set('n', "go", "Telescope git_status", {desc= "Open changed file" }) keymap.set('n', "gb", "Telescope git_branches", {desc= "Checkout branch" }) keymap.set('n', "gc", "Telescope git_commits", {desc= "Checkout commit" }) keymap.set('n', "gC", "Telescope git_bcommits", {desc= "Checkout commit(for current file)", }) keymap.set('n', "gd", "Gitsigns diffthis HEAD", {desc= "Git Diff", }) -- h keymap.set('n', 'h', ':set hlsearch!', { noremap = true, silent = true }) -- no hl -- l for lsp keymap.set('n', 'l', "", {desc="+Language"}) keymap.set({'n','v'}, 'la', "lua vim.lsp.buf.code_action()", {desc="Code Action" }) --keymap.set('n', 'lA', "Lspsaga range_code_action", {desc="Selected Action" }) keymap.set('n', 'ld', "Telescope lsp_document_diagnostics", {desc="Document Diagnostics" }) keymap.set('n', 'lD', "Telescope lsp_workspace_diagnostics", {desc="Workspace Diagnostics" }) keymap.set('n', 'lf', "LspFormatting", {desc="Format" }) --keymap.set('n', 'lF', "Lspsaga lsp_finder", {desc="LSP Finder" }) keymap.set('n', 'li', "lua vim.lsp.buf.implementation()", {desc="implement" }) keymap.set('n', 'ln', "lua vim.lsp.buf.hover()", {desc="hover" }) --keymap.set('n', 'lL', "Lspsaga show_line_diagnostics", {desc="Line Diagnostics" }) keymap.set('n', 'lk', ": LspRestart", {desc="restart lsp server" }) keymap.set('n', 'll', "lua vim.diagnostic.goto_next()", {desc="next diagnostic" }) keymap.set('n', 'lo', ": SymbolsOutline", {desc="symbols outline" }) keymap.set('n', 'lp', "lua vim.diagnostic.goto_prev()", {desc="prev diagnostic" }) --keymap.set('n', 'lP', "Lspsaga preview_definition", {desc="Preview Definition" }) keymap.set('n', 'lq', "Telescope quickfix", {desc="Quickfix" }) keymap.set('n', 'lr', "lua vim.lsp.buf.references()", {desc="references" }) keymap.set('n', 'lR', "lua vim.lsp.buf.rename()", { desc = "Rename" }) --keymap.set('n', 'lR', "Lspsaga rename", {desc="Rename" }) keymap.set('n', 'lt', "LspTypeDefinition", {desc="Type Definition" }) keymap.set('n', 'lx', "cclose", {desc="Close Quickfix" }) keymap.set('n', 'ls', "Telescope lsp_document_symbols", {desc="Document Symbols" }) keymap.set('n', 'lS', "Telescope lsp_dynamic_workspace_symbols", {desc="Workspace Symbols" }) keymap.set('n', 'lz', "LspInfo", {desc="Info" }) keymap.set('n', 'l,', "LspInstallInfo", {desc="LSP servers" }) -- q keymap.set('n', "qq", "qall", {desc= "quit" }) -- s keymap.set('n', "sb", "Telescope git_branches", {desc= "Checkout branch" }) keymap.set('n', "sc", ":nohl", {desc= "no highlight" }) keymap.set('n', "sd", "Telescope lsp_document_diagnostics", {desc= "Document Diagnostics" }) keymap.set('n', "sD", "Telescope lsp_workspace_diagnostics", {desc= "Workspace Diagnostics" }) keymap.set('n', "sf", "Telescope find_files", {desc= "Find File" }) keymap.set('n', "sr", function() require("telescope.builtin").oldfiles({ cwd = vim.loop.cwd() }) end, {desc= "Old File" }) keymap.set('n', "sm", "Telescope marks", {desc= "Marks" }) keymap.set('n', "sM", "Telescope man_pages", {desc= "Man Pages" }) keymap.set('n', "sR", "Telescope registers", {desc= "Registers" }) keymap.set('n', "st", "Telescope live_grep", {desc= "Text" }) keymap.set('n', "sT", "Telescope live_grep", {desc= "Text" }) keymap.set('n', "s,", "FzfLua grep_cword", {desc= "Search word under cursor" }) -- S keymap.set('n', "Ss", "SessionSave", {desc= "Save Session" }) keymap.set('n', "Sl", "SessionLoad", {desc= "Load Session" }) -- t keymap.set('n', "ta", "TestSuite -v -cover", {desc= "TestSuite" }) keymap.set('n', "tt", "lua require('neotest').run.run() ", {desc= "TestNearest" }) keymap.set('n', "tf", 'lua require("neotest").run.run(vim.fn.expand("%"))', {desc= "TestFile" }) keymap.set('n', "tc", "GoCover", {desc="go coverage" }) keymap.set('n', "tC", "GoCoverClear", {desc= "go coverage clear" }) keymap.set('n', "tb", "lua require'dap'.toggle_breakpoint()", {desc= "set break point" }) keymap.set('n', "tr", "lua require'dap'.continue()", {desc= "continue" }) keymap.set('n', "zs", "TZBottom", {desc="toggle status line" }) keymap.set('n', "zt", "TZTop", {desc= "toggle tab bar" }) keymap.set('n', "zz", "TZAtaraxis", {desc= "toggle zen" }) -- ; keymap.set('n', ';', ':Dashboard', { noremap = true, silent = true }) -- Ctrl keymap.set('n', '', function() require("telescope.builtin").find_files() end, { noremap = true, silent = true, desc = "Find Files" }) -- better window movement keymap.set('n', '', 'h', { silent = true }) keymap.set('n', '', 'j', { silent = true }) keymap.set('n', '', 'k', { silent = true }) keymap.set('n', '', 'l', { silent = true }) -- resize with arrows keymap.set('n', '', ':resize -2', { silent = true }) keymap.set('n', '', ':resize +2', { silent = true }) keymap.set('n', '', ':vertical resize -2', { silent = true }) keymap.set('n', '', ':vertical resize +2', { silent = true }) keymap.set('n', '', ':call QuickFixToggle()', { noremap = true, silent = true }) -- Override two spaces (LazyVim default fzf) with Telescope live_grep -- Search for keywords in file contents keymap.set('n', ' ', function() require("telescope.builtin").live_grep() end, { noremap = true, silent = true, desc = "Search in Files (two spaces)" }) -- Other -- better edit keymap.set('n', 'Y', 'y$', {}) -- better indenting keymap.set('v', '<', '', '>gv', { noremap = true, silent = true }) -- I hate escape keymap.set('i', 'jk', '', { noremap = true, silent = true }) keymap.set('i', 'kj', '', { noremap = true, silent = true }) keymap.set('i', 'jj', '', { noremap = true, silent = true }) -- Tab switch buffer keymap.set('n', '', ':BufferNext', { noremap = true, silent = true }) keymap.set('n', '', ':BufferPrevious', { noremap = true, silent = true }) -- Move selected line / block of text in visual mode keymap.set('x', 'K', ':move \'<-2gv-gv', { noremap = true, silent = true }) keymap.set('x', 'J', ':move \'>+1gv-gv', { noremap = true, silent = true })