-- Personal keymaps (original workflow) local keymap = vim.keymap -- ============================================================================= -- PERSONAL KEYMAPS (ORIGINAL WORKFLOW) -- ============================================================================= keymap.set("n", "u", function() vim.cmd("normal! ggVG") end, { desc = "Select the whole file" }) keymap.set("n", "4", function() -- Copy current line and paste below vim.cmd("normal! yy") vim.cmd("normal! p") end, { desc = "Copy the entire line and paste just below" }) -- file management keymap.set("n", "w", ":w", { desc = "Save the current file" }) keymap.set("n", "xa", ":xa", { desc = "Save and close all the files" }) keymap.set("n", "q", ":q", { desc = "Close all the files" }) keymap.set("n", "so", ":source %", { desc = "Reload nvim" }) keymap.set("n", "no", ":noh ", { desc = "Reset search a word" }) -- increment/decrement numbers keymap.set("n", "+", "", { desc = "Increment number" }) -- increment keymap.set("n", "-", "", { desc = "Decrement number" }) -- decrement -- Window management keymaps are centralized in lua/cargdev/core/keymaps/window.lua -- sintax fixer keymap.set("n", "sy", "gg=G", { desc = "Format current file" }) keymap.set("n", "", "10", { noremap = true, silent = true }) keymap.set("n", "", "10", { noremap = true, silent = true }) -- Buffer management with safe close (confirms if unsaved changes) keymap.set("n", "bd", function() if vim.bo.modified then vim.ui.select({ "Save & Close", "Discard & Close", "Cancel" }, { prompt = "Buffer has unsaved changes:", }, function(choice) if choice == "Save & Close" then vim.cmd("w") vim.cmd("bd") elseif choice == "Discard & Close" then vim.cmd("bd!") end end) else vim.cmd("bd") end end, { desc = "Buffer: Close (safe)" }) -- Force close buffer without confirmation keymap.set("n", "bD", ":bd!", { desc = "Buffer: Force close" }) -- Set buftabline mappings keymap.set("n", "", ":bnext", { noremap = true, silent = true }) keymap.set("n", "", ":bprev", { noremap = true, silent = true }) -- Coding hacks keymap.set( "n", "re", "ggOimportReactfrom'react';0", { desc = "Type import react from 'react' at the top of the file" } ) keymap.set("n", ",", "$a,", { desc = "Adding ',' at the end of the line" }) keymap.set("n", ";", "$a;", { desc = "Adding ';' at the end of the line" }) keymap.set("n", "con", "oconsole.log()0w$h", { desc = "Adding console.log() on the line below" }) keymap.set("n", "x", ":!node %", { desc = "Running current project using node" }) -- Resize splits keymaps are centralized in lua/cargdev/core/keymaps/window.lua -- Run and Debug Project keymap.set("n", "pr", ":RunProject", { desc = "Run Project" }) keymap.set("n", "pd", ":DebugProject", { desc = "Debug Project" }) -- Copilot Chat (all Copilot keymaps moved to lua/cargdev/core/keymaps/copilot.lua) keymap.set("v", "zn", ":CopilotChatRename", { desc = "Rename variable (Copilot Chat)" }) keymap.set("n", "zc", ":CopilotChat", { desc = "Open Copilot Chat" }) keymap.set("v", "ze", ":CopilotChatExplain", { desc = "Explain code (Copilot Chat)" }) keymap.set("v", "zr", ":CopilotChatReview", { desc = "Review code (Copilot Chat)" }) keymap.set("v", "zf", ":CopilotChatFix", { desc = "Fix code issues (Copilot Chat)" }) keymap.set("v", "zo", ":CopilotChatOptimize", { desc = "Optimize code (Copilot Chat)" }) keymap.set("v", "zd", ":CopilotChatDocs", { desc = "Generate docs (Copilot Chat)" }) -- Paste HTML as Markdown using pandoc keymap.set("n", "p", function() vim.cmd("read !pbpaste -Prefer html | pandoc -f html -t gfm") end, { desc = "Paste HTML clipboard as Markdown" }) -- ============================================================================= -- QUICKFIX NAVIGATION -- ============================================================================= keymap.set("n", "qn", ":cnextzz", { desc = "Quickfix: Next item" }) keymap.set("n", "qp", ":cprevzz", { desc = "Quickfix: Previous item" }) keymap.set("n", "qo", ":copen", { desc = "Quickfix: Open list" }) keymap.set("n", "qq", ":cclose", { desc = "Quickfix: Close list" }) keymap.set("n", "qf", ":cfirstzz", { desc = "Quickfix: First item" }) keymap.set("n", "ql", ":clastzz", { desc = "Quickfix: Last item" }) -- Location list navigation keymap.set("n", "ln", ":lnextzz", { desc = "Location: Next item" }) keymap.set("n", "lp", ":lprevzz", { desc = "Location: Previous item" }) keymap.set("n", "lo", ":lopen", { desc = "Location: Open list" }) keymap.set("n", "lq", ":lclose", { desc = "Location: Close list" })