90 lines
3.7 KiB
Lua
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" })
|
|
|