local vim = vim vim.keymap.set("n", "s", function() vim.cmd("split") vim.cmd("wincmd j") end, { noremap = true }) vim.keymap.set("n", "v", function() vim.cmd("vsplit") vim.cmd("wincmd l") end, { noremap = true }) -- Leader Maps vim.keymap.set("n", "f", "", { desc = "Files"}) vim.keymap.set("n", "ff", ":FzfLua files", { desc = "File Finder"}) -- vim.keymap.set("n", "fe", ":Pick files", { desc = "File Picker"}) vim.keymap.set("n", "ft", t3_toggle_netrw, { desc = "File Tree"}) vim.keymap.set("n", "b", "", { desc = "Buffers"}) vim.keymap.set("n", "bb", ":Pick buffers", { desc = "Buffer Picker"}) vim.keymap.set("n", "bp", ":bp", { desc = "Previous"}) vim.keymap.set("n", "bn", ":bn", { desc = "Next"}) vim.keymap.set("n", "bd", ":bd", { desc = "Delete"}) vim.keymap.set("n", "g", "", { desc = "Grep"}) vim.keymap.set("n", "gg", ":FzfLua grep", { desc = "Grep"}) vim.keymap.set("n", "gr", ":FzfLua grep resume=true", { desc = "Resume Grep"}) vim.keymap.set("n", "G", "", { desc = "Git"}) vim.keymap.set("n", "Gg", ":LazyGit", { desc = "LazyGit"}) vim.keymap.set("n", "GC", ":LazyGitConfig", { desc = "LazyGit Config"}) vim.keymap.set("n", "Gc", ":LazyGitFilter", { desc = "Commits"}) vim.keymap.set("n", "Gl", ":LazyGitLog", { desc = "Log"}) vim.keymap.set("n", "", "", { desc = "Tabs"}) vim.keymap.set("n", "", ":tabnew", { desc = "New Tab"}) vim.keymap.set("n", "p", ":tabprevious", { desc = "Previous Tab"}) vim.keymap.set("n", "n", ":tabnext", { desc = "Next Tab"}) vim.keymap.set("n", "d", ":tabclose", { desc = "Delete Tab"}) vim.keymap.set("n", "l", ":tablast", { desc = "Last Tab"}) vim.keymap.set("n", "f", ":tabfirst", { desc = "First Tab"}) vim.keymap.set("n", "m", ":tabmove", { desc = "Move Tab"}) vim.keymap.set("n", "r", ":tabrenumber", { desc = "Renumber Tabs"}) vim.keymap.set("n", "c", ":tabclose!", { desc = "Force Close Tab"}) vim.keymap.set("n", "gR", "Glance references", { desc = "Glance References" }) vim.keymap.set("n", "gD", "Glance definitions", { desc = "Glance Definitions" }) vim.keymap.set("n", "gY", "Glance type_definitions", { desc = "Glance Type Definitions" }) vim.keymap.set("n", "gM", "Glance implementations", { desc = "Glance Implementations" }) vim.keymap.set("n", "", ":b#", { desc = "Switch to Last Buffer" }) vim.keymap.set("n", "", ":bprevious", { desc = "Previous Buffer" }) vim.keymap.set("n", "", ":bnext", { desc = "Next Buffer" }) vim.keymap.set("n", "", ":tabprevious", { desc = "Previous Tab" }) vim.keymap.set("n", "", ":tabnext", { desc = "Next Tab" }) vim.keymap.set("n", "", "BufferGoto 1", { desc = "Go to Buffer 1" }) vim.keymap.set("n", "", "BufferGoto 2", { desc = "Go to Buffer 2" }) vim.keymap.set("n", "", "BufferGoto 3", { desc = "Go to Buffer 3" }) vim.keymap.set("n", "", "BufferGoto 4", { desc = "Go to Buffer 4" }) vim.keymap.set("n", "", "BufferGoto 5", { desc = "Go to Buffer 5" }) vim.keymap.set("n", "", "BufferGoto 6", { desc = "Go to Buffer 6" }) vim.keymap.set("n", "", "BufferGoto 7", { desc = "Go to Buffer 7" }) vim.keymap.set("n", "", "BufferGoto 8", { desc = "Go to Buffer 8" }) vim.keymap.set("n", "", "BufferGoto 9", { desc = "Go to Buffer 9" }) vim.keymap.set("n", "", "BufferLast", { desc = "Go to Last Buffer" }) -- Meta X Maps vim.keymap.set("n", "", ":Telescope commands", { desc = "Commands"}) vim.keymap.set("n", "b", ":Telescope buffers", { desc = "Buffers"}) vim.keymap.set("n", "f", ":Telescope find_files", { desc = "Find Files"}) vim.keymap.set("n", "g", ":Telescope live_grep", { desc = "Live Grep"}) vim.keymap.set("n", "h", ":Telescope help_tags", { desc = "Help Tags"}) vim.keymap.set("n", "p", ":Telescope project", { desc = "Projects"}) vim.keymap.set("n", "l", ":Telescope resume", { desc = "Resume Last Search"}) vim.keymap.set("n", "c", ":Telescope colorscheme", { desc = "Colorschemes"}) vim.keymap.set("n", "n", ":enew", { desc = "New File"}) vim.keymap.set("n", "s", ":w", { desc = "Save File"}) vim.keymap.set("n", "q", ":q", { desc = "Quit"}) vim.keymap.set("n", "w", ":bd", { desc = "Close Buffer"}) vim.keymap.set("n", "a", "ggVG", { desc = "Select All"}) vim.keymap.set("n", "z", "u", { desc = "Undo"}) vim.keymap.set("n", "y", "", { desc = "Redo"}) vim.keymap.set("n", "/", ":nohlsearch", { desc = "Clear Search Highlight"}) vim.keymap.set("n", "=", ":vertical resize +5", { desc = "Increase Window Width"}) vim.keymap.set("n", "-"," :vertical resize -5", { desc = "Decrease Window Width"}) vim.keymap.set("n", "+", ":resize +5", { desc = "Increase Window Height"}) vim.keymap.set("n", "_", ":resize -5", { desc = "Decrease Window Height"}) -- CTRL X Maps vim.keymap.set("n", "", ":Pick buffers", { desc = "Buffer Picker"}) vim.keymap.set("n", "", ":Pick files", { desc = "File Picker"}) vim.keymap.set("n", "", ":Pick help", { desc = "Help Picker"}) vim.keymap.set("n", "", "", { desc = "Grep"}) vim.keymap.set("n", "g", ":Pick grep", { desc = "Grep"}) vim.keymap.set("n", "l", ":Pick grep_live", { desc = "Live Grep"}) vim.keymap.set("n", "", "", { desc = "Notes"}) vim.keymap.set("n", "e", "TWEditTask", { desc = "TaskWarrior Edit", noremap = true, silent = true }) vim.keymap.set("n", "v", "TWView", { desc = "View Tasks", noremap = true, silent = true }) vim.keymap.set("n", "u", "TWUpdateCurrent", { desc="Update Tasks", noremap = true, silent = true }) vim.keymap.set("n", "s", "TWSyncTasks", { desc = "Sync Tasks", noremap = true, silent = true }) vim.keymap.set("n", "", "TWToggle", { desc = "Toggle Taskwarrior", silent = true }) -- FN Keys -- vim.keymap.set("n", "", ":nohlsearch", { desc = "Clear Search Highlight"}) vim.keymap.set("n", "", ":UndotreeToggle", { desc = "Undo Tree Toggle"}) vim.keymap.set("n", "", ":Ranger", { desc = "Ranger"}) vim.keymap.set("n", "", ":RangerNewTab", { desc = "Ranger New Tab"}) vim.keymap.set("n", "", ":Telescope live_grep", { desc = "live grep"}) vim.keymap.set("n", "", ":setlocal spell! spelllang=en_us", { desc = "Toggle Spell Check"}) vim.keymap.set("n", "", ":setlocal wrap!", { desc = "Toggle Line Wrap"}) vim.keymap.set( "n", "a", "", {desc = "AI/Claude Code" }) vim.keymap.set( "n", "ac", "ClaudeCode", {desc = "Toggle Claude" }) vim.keymap.set( "n", "af", "ClaudeCodeFocus", {desc = "Focus Claude" }) vim.keymap.set( "n", "ar", "ClaudeCode --resume", {desc = "Resume Claude" }) vim.keymap.set( "n", "aC", "ClaudeCode --continue", {desc = "Continue Claude" }) vim.keymap.set( "n", "am", "ClaudeCodeSelectModel", {desc = "Select Claude model" }) vim.keymap.set( "n", "ab", "ClaudeCodeAdd %", {desc = "Add current buffer" }) vim.keymap.set( "v", "as", "ClaudeCodeSend", {desc = "Send to Claude" }) -- vim.keymap.set( "n", "as", "ClaudeCodeTreeAdd", {desc = "Add file", ft = { "NvimTree", "neo-tree", "oil", "minifiles" }}) vim.keymap.set( "n", "aa", "ClaudeCodeDiffAccept", {desc = "Accept diff" }) vim.keymap.set( "n", "ad", "ClaudeCodeDiffDeny", {desc = "Deny diff" }) vim.api.nvim_create_autocmd("FileType", { pattern = { "NvimTree", "neo-tree", "oil", "minifiles" }, callback = function() vim.keymap.set("n", "as", "ClaudeCodeTreeAdd", { desc = "Add file", buffer = true }) end, }) -- COC Keybindings function ShowDocumentation() if CocAction("hasProvier", "hover") then CocActionAsync("doHover") else vim.cmd("h " .. vim.bo.filetype) end end vim.keymap.set( "n", "K", ":call ShowDocumentation()", { noremap = true, silent = true, desc = "Show Documentation" }) vim.keymap.set( "n", "l", "", {desc = "LSP" }) vim.keymap.set( "n", "lc", "", {desc = "Completions" }) vim.keymap.set( "n", "lch", "CocCommand document.toggleInlayHint", {desc = "Toggle Inline Hints" }) vim.keymap.set( "n", "lcs", "CocOutline", {desc = "Show Symbol Outline" }) vim.keymap.set( "n", "lcl", "CocCommand document.toggleCodeLens", {desc = "Show Code Lens" })