Files
nvim/lua/mappings.lua
Adam Bellinson dbbf122f29
Some checks failed
Close stale issues and PRs / stale (push) Has been cancelled
initial 0.11 rebuild
2025-10-03 10:00:46 -04:00

90 lines
3.7 KiB
Lua

require "nvchad.mappings"
-- add yours here
local map = vim.keymap.set
-- map("n", ";", ":", { desc = "CMD enter command mode" })
map("i", "jk", "<ESC>")
-- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>")
-- Insert mode: paste from OS without autopairing
map("i", "<c-r>", "<c-v>", { desc = "paste from OS without autopairing" })
-- Window management
map("n", "<leader>wv", "<C-w>v", { desc = "Split vertical" })
map("n", "<leader>ws", "<C-w>s", { desc = "Split horizontal" })
map("n", "<leader>wo", "<C-w>o", { desc = "Maximize split" })
map("n", "<leader>wc", "<C-w>c", { desc = "Close split" })
map("n", "<leader>wx", "<C-w>c", { desc = "Close split" })
map("n", "<leader>w=", "<C-w>=", { desc = "Even splits" })
map("n", "<leader>h", "<C-w>h", { desc = "Focus left split" })
map("n", "<leader>j", "<C-w>j", { desc = "Focus lower split" })
map("n", "<leader>k", "<C-w>k", { desc = "Focus upper split" })
map("n", "<leader>l", "<C-w>l", { desc = "Focus right split" })
-- File operations
map("n", "<leader>ee", ':e <C-R>=expand("%:p:h" . "/" <CR><CR>)', { desc = "Copy relative path to file" })
map("n", "<leader>er", ":!echo -n % | pbcopy<CR>", { desc = "Copy absolute path to file" })
map("n", "<leader>gn", ":Telescope resume<CR>", { desc = "Resume telescope" })
map("n", "<leader>eu", '!!python -c "import uuid; print(uuid.uuid4())"<CR>', { desc = "Drop fresh uuid4" })
-- Clipboard operations
map("n", "<c-c>", '"+y', { desc = "Copy to OS clipboard" })
-- Save
map("n", ",,", ":w<CR>", { desc = "Save" })
map("n", "<leader> ", ":w<CR>", { desc = "Save" })
-- NvimTree Toggle
map("n", "<leader>n", "<cmd> NvimTreeToggle <CR>", { desc = "Toggle NvimTree" })
-- Toggle line numbers
map("n", "<leader>N", "<cmd> set nu! <CR>", { desc = "Toggle line number" })
-- Buffer operations
map("n", "<leader>x", "<cmd>bdelete<CR>", { desc = "Close Buffer and window" })
map("n", "<leader>X", "<cmd>bdelete!<CR>", { desc = "Close Buffer and window!" })
map("n", "<leader>c", "<cmd>Bdelete<CR>", { desc = "Close Buffer" })
map("n", "<leader>b", "<cmd> Telescope buffers <CR>", { desc = "Find buffers" })
-- Git operations
map("n", "gb", "<cmd>Gitsigns blame<CR>", { desc = "Git blame" })
map("n", "gB", "<cmd>Gitsigns blame_line<CR>", { desc = "Git blame line" })
map("n", "gu", "<cmd>diffget //2<CR>", { desc = "Select left in conflict" })
map("n", "gh", "<cmd>diffget //3<CR>", { desc = "Select right in conflict" })
-- Floating diagnostics
map("n", "ge", function()
vim.diagnostic.open_float({ border = "rounded" })
end, { desc = "Floating diagnostic" })
-- Buffer navigation
map("n", ",z", ":bnext<CR>", { desc = "Next buffer" })
map("n", ",v", ":bprevious<CR>", { desc = "Previous buffer" })
map("n", "<leader>z", function()
require("nvchad.tabufline").tabuflineNext()
end, { desc = "Goto next buffer" })
map("n", "<leader>v", function()
require("nvchad.tabufline").tabuflinePrev()
end, { desc = "Goto prev buffer" })
-- Neotest commands
map("n", "<leader>tl", ":Neotest run last<CR>", { desc = "Neotest Run Last" })
map("n", "<leader>ts", ":Neotest summary<CR>", { desc = "Neotest Summary" })
map("n", "<leader>to", ":Neotest output<CR>", { desc = "Neotest Output" })
map("n", "<leader>ta", ":Neotest output-panel<CR>", { desc = "Neotest Output Panel" })
-- Visual Mode
map("v", ">", ">gv", { desc = "Indent" })
map("v", "<c-c>", '"+y', { desc = "Copy to OS clipboard" })
-- LSP
map("n", "<leader>ls", ":LspInfo<CR>", { desc = "Show LSP info" })
map("n", "go", vim.lsp.buf.format, { desc = "LSP formatting" })
map("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" })
map("n", "<leader>gr", vim.lsp.buf.references, { desc = "Find references" })
map("n", "<leader>rn", vim.lsp.buf.rename, { desc = "Rename symbol" })