196 lines
13 KiB
Lua
196 lines
13 KiB
Lua
local vim = vim
|
|
|
|
vim.keymap.set("n", "<C-w>s", function()
|
|
vim.cmd("split")
|
|
vim.cmd("wincmd j")
|
|
end, { noremap = true })
|
|
|
|
vim.keymap.set("n", "<C-w>v", function()
|
|
vim.cmd("vsplit")
|
|
vim.cmd("wincmd l")
|
|
end, { noremap = true })
|
|
|
|
-- Leader Maps
|
|
vim.keymap.set("n", "<leader>f", "", { desc = "Files"})
|
|
-- vim.keymap.set("n", "<leader>ff", ":FzfLua files<CR>", { desc = "File Finder"})
|
|
vim.keymap.set("n", "<leader>ff", ":Pick files<CR>", { desc = "File Picker"})
|
|
vim.keymap.set("n", "<leader>ft", t3_toggle_netrw, { desc = "File Tree"})
|
|
|
|
vim.keymap.set("n", "<leader>b", "", { desc = "Buffers"})
|
|
vim.keymap.set("n", "<leader>bb", ":Pick buffers<CR>", { desc = "Buffer Picker"})
|
|
vim.keymap.set("n", "<leader>bp", ":bp<CR>", { desc = "Previous"})
|
|
vim.keymap.set("n", "<leader>bn", ":bn<CR>", { desc = "Next"})
|
|
vim.keymap.set("n", "<leader>bd", ":bd<CR>", { desc = "Delete"})
|
|
|
|
vim.keymap.set("n", "<leader>g", "", { desc = "Grep"})
|
|
vim.keymap.set("n", "<leader>gg", ":FzfLua grep<CR>", { desc = "Grep"})
|
|
vim.keymap.set("n", "<leader>gr", ":FzfLua grep resume=true<CR>", { desc = "Resume Grep"})
|
|
|
|
vim.keymap.set("n", "<leader>G", "", { desc = "Git"})
|
|
vim.keymap.set("n", "<leader>Gg", ":LazyGit<CR>", { desc = "LazyGit"})
|
|
vim.keymap.set("n", "<leader>GC", ":LazyGitConfig<CR>", { desc = "LazyGit Config"})
|
|
vim.keymap.set("n", "<leader>Gc", ":LazyGitFilter<CR>", { desc = "Commits"})
|
|
vim.keymap.set("n", "<leader>Gl", ":LazyGitLog<CR>", { desc = "Log"})
|
|
|
|
vim.keymap.set("n", "<leader><Tab>", "", { desc = "Tabs"})
|
|
vim.keymap.set("n", "<leader><Tab><Tab>", ":tabnew<CR>", { desc = "New Tab"})
|
|
vim.keymap.set("n", "<leader><Tab>p", ":tabprevious<CR>", { desc = "Previous Tab"})
|
|
vim.keymap.set("n", "<leader><Tab>n", ":tabnext<CR>", { desc = "Next Tab"})
|
|
vim.keymap.set("n", "<leader><Tab>d", ":tabclose<CR>", { desc = "Delete Tab"})
|
|
vim.keymap.set("n", "<leader><Tab>l", ":tablast<CR>", { desc = "Last Tab"})
|
|
vim.keymap.set("n", "<leader><Tab>f", ":tabfirst<CR>", { desc = "First Tab"})
|
|
vim.keymap.set("n", "<leader><Tab>m", ":tabmove<CR>", { desc = "Move Tab"})
|
|
vim.keymap.set("n", "<leader><Tab>r", ":tabrenumber<CR>", { desc = "Renumber Tabs"})
|
|
vim.keymap.set("n", "<leader><Tab>c", ":tabclose!<CR>", { desc = "Force Close Tab"})
|
|
|
|
vim.keymap.set("n", "gR", "<CMD>Glance references<CR>", { desc = "Glance References" })
|
|
vim.keymap.set("n", "gD", "<CMD>Glance definitions<CR>", { desc = "Glance Definitions" })
|
|
vim.keymap.set("n", "gY", "<CMD>Glance type_definitions<CR>", { desc = "Glance Type Definitions" })
|
|
vim.keymap.set("n", "gM", "<CMD>Glance implementations<CR>", { desc = "Glance Implementations" })
|
|
|
|
vim.keymap.set("n", "<A-Tab>", ":b#<CR>", { desc = "Switch to Last Buffer" })
|
|
vim.keymap.set("n", "<A-Left>", ":bprevious<CR>", { desc = "Previous Buffer" })
|
|
vim.keymap.set("n", "<A-Right>", ":bnext<CR>", { desc = "Next Buffer" })
|
|
vim.keymap.set("n", "<A-Up>", ":tabprevious<CR>", { desc = "Previous Tab" })
|
|
vim.keymap.set("n", "<A-Down>", ":tabnext<CR>", { desc = "Next Tab" })
|
|
vim.keymap.set("n", "<A-1>", "<Cmd>BufferGoto 1<CR>", { desc = "Go to Buffer 1" })
|
|
vim.keymap.set("n", "<A-2>", "<Cmd>BufferGoto 2<CR>", { desc = "Go to Buffer 2" })
|
|
vim.keymap.set("n", "<A-3>", "<Cmd>BufferGoto 3<CR>", { desc = "Go to Buffer 3" })
|
|
vim.keymap.set("n", "<A-4>", "<Cmd>BufferGoto 4<CR>", { desc = "Go to Buffer 4" })
|
|
vim.keymap.set("n", "<A-5>", "<Cmd>BufferGoto 5<CR>", { desc = "Go to Buffer 5" })
|
|
vim.keymap.set("n", "<A-6>", "<Cmd>BufferGoto 6<CR>", { desc = "Go to Buffer 6" })
|
|
vim.keymap.set("n", "<A-7>", "<Cmd>BufferGoto 7<CR>", { desc = "Go to Buffer 7" })
|
|
vim.keymap.set("n", "<A-8>", "<Cmd>BufferGoto 8<CR>", { desc = "Go to Buffer 8" })
|
|
vim.keymap.set("n", "<A-9>", "<Cmd>BufferGoto 9<CR>", { desc = "Go to Buffer 9" })
|
|
vim.keymap.set("n", "<A-0>", "<Cmd>BufferLast<CR>", { desc = "Go to Last Buffer" })
|
|
|
|
-- Meta X Maps
|
|
vim.keymap.set("n", "<M-x><M-x>", ":Telescope commands<CR>", { desc = "Commands"})
|
|
vim.keymap.set("n", "<M-x>b", ":Telescope buffers<CR>", { desc = "Buffers"})
|
|
vim.keymap.set("n", "<M-x>f", ":Telescope find_files<CR>", { desc = "Find Files"})
|
|
vim.keymap.set("n", "<M-x>g", ":Telescope live_grep<CR>", { desc = "Live Grep"})
|
|
vim.keymap.set("n", "<M-x>h", ":Telescope help_tags<CR>", { desc = "Help Tags"})
|
|
vim.keymap.set("n", "<M-x>p", ":Telescope project<CR>", { desc = "Projects"})
|
|
vim.keymap.set("n", "<M-x>l", ":Telescope resume<CR>", { desc = "Resume Last Search"})
|
|
vim.keymap.set("n", "<M-x>c", ":Telescope colorscheme<CR>", { desc = "Colorschemes"})
|
|
vim.keymap.set("n", "<M-x>n", ":enew<CR>", { desc = "New File"})
|
|
vim.keymap.set("n", "<M-x>s", ":w<CR>", { desc = "Save File"})
|
|
vim.keymap.set("n", "<M-x>q", ":q<CR>", { desc = "Quit"})
|
|
vim.keymap.set("n", "<M-x>w", ":bd<CR>", { desc = "Close Buffer"})
|
|
vim.keymap.set("n", "<M-x>a", "ggVG", { desc = "Select All"})
|
|
vim.keymap.set("n", "<M-x>z", "u", { desc = "Undo"})
|
|
vim.keymap.set("n", "<M-x>y", "<C-r>", { desc = "Redo"})
|
|
vim.keymap.set("n", "<M-x>/", ":nohlsearch<CR>", { desc = "Clear Search Highlight"})
|
|
vim.keymap.set("n", "<M-x>=", ":vertical resize +5<CR>", { desc = "Increase Window Width"})
|
|
vim.keymap.set("n", "<M-x>-"," :vertical resize -5<CR>", { desc = "Decrease Window Width"})
|
|
vim.keymap.set("n", "<M-x>+", ":resize +5<CR>", { desc = "Increase Window Height"})
|
|
vim.keymap.set("n", "<M-x>_", ":resize -5<CR>", { desc = "Decrease Window Height"})
|
|
|
|
|
|
-- CTRL X Maps
|
|
vim.keymap.set("n", "<C-x>", "", { desc = "Ctrl-X"})
|
|
vim.keymap.set("n", "<C-x><C-b>", ":Pick buffers<CR>", { desc = "Buffer Picker"})
|
|
vim.keymap.set("n", "<C-x><C-f>", ":Pick files<CR>", { desc = "File Picker"})
|
|
vim.keymap.set("n", "<C-x><C-h>", ":Pick help<CR>", { desc = "Help Picker"})
|
|
vim.keymap.set("n", "<C-x><C-g>", "", { desc = "Grep"})
|
|
vim.keymap.set("n", "<C-x><C-g>g", ":Pick grep<CR>", { desc = "Grep"})
|
|
vim.keymap.set("n", "<C-x><C-g>l", ":Pick grep_live<CR>", { desc = "Live Grep"})
|
|
vim.keymap.set("n", "<C-x><C-n>", "", { desc = "Notes"})
|
|
vim.keymap.set("n", "<C-x><C-n>e", "<cmd>TWEditTask<cr>", { desc = "TaskWarrior Edit", noremap = true, silent = true })
|
|
vim.keymap.set("n", "<C-x><C-n>v", "<cmd>TWView<cr>", { desc = "View Tasks", noremap = true, silent = true })
|
|
vim.keymap.set("n", "<C-x><C-n>u", "<cmd>TWUpdateCurrent<cr>", { desc="Update Tasks", noremap = true, silent = true })
|
|
vim.keymap.set("n", "<C-x><C-n>s", "<cmd>TWSyncTasks<cr>", { desc = "Sync Tasks", noremap = true, silent = true })
|
|
vim.keymap.set("n", "<C-x><C-n><c-space>", "<cmd>TWToggle<cr>", { desc = "Toggle Taskwarrior", silent = true })
|
|
vim.keymap.set("n", "<C-x><C-d>", "", { desc = "Devdocs"})
|
|
vim.keymap.set("n", "<C-x><C-d>i", ":DevdocsInstall ", { desc = "Install Docset"})
|
|
vim.keymap.set("n", "<C-x><C-d>o", ":DevdocsOpen ", { desc = "Open Docs In Window"})
|
|
vim.keymap.set("n", "<C-x><C-d>f", ":DevdocsOpenFloat ", { desc = "Open Docs In Float"})
|
|
vim.keymap.set("n", "<C-x><C-d>t", "<cmd>DevdocsToggle<cr>", { desc = "Toggle Float"})
|
|
|
|
|
|
-- FN Keys --
|
|
vim.keymap.set("n", "<F1>", ":nohlsearch<CR>", { desc = "Clear Search Highlight"})
|
|
vim.keymap.set("n", "<F2>", ":UndotreeToggle<CR>", { desc = "Undo Tree Toggle"})
|
|
vim.keymap.set("n", "<F3>", ":Ranger<CR>", { desc = "Ranger"})
|
|
vim.keymap.set("n", "<c-F3>", ":RangerNewTab<CR>", { desc = "Ranger New Tab"})
|
|
vim.keymap.set("n", "<f9>", ":Telescope live_grep<cr>", { desc = "live grep"})
|
|
vim.keymap.set("n", "<F11>", ":setlocal spell! spelllang=en_us<CR>", { desc = "Toggle Spell Check"})
|
|
vim.keymap.set("n", "<F12>", ":setlocal wrap!<CR>", { desc = "Toggle Line Wrap"})
|
|
|
|
-- vim.keymap.set( "n", "<leader>a", "", {desc = "AI/Claude Code" })
|
|
-- vim.keymap.set( "n", "<leader>ac", "<cmd>ClaudeCode<cr>", {desc = "Toggle Claude" })
|
|
-- vim.keymap.set( "n", "<leader>af", "<cmd>ClaudeCodeFocus<cr>", {desc = "Focus Claude" })
|
|
-- vim.keymap.set( "n", "<leader>ar", "<cmd>ClaudeCode --resume<cr>", {desc = "Resume Claude" })
|
|
-- vim.keymap.set( "n", "<leader>aC", "<cmd>ClaudeCode --continue<cr>", {desc = "Continue Claude" })
|
|
-- vim.keymap.set( "n", "<leader>am", "<cmd>ClaudeCodeSelectModel<cr>", {desc = "Select Claude model" })
|
|
-- vim.keymap.set( "n", "<leader>ab", "<cmd>ClaudeCodeAdd %<cr>", {desc = "Add current buffer" })
|
|
-- vim.keymap.set( "v", "<leader>as", "<cmd>ClaudeCodeSend<cr>", {desc = "Send to Claude" })
|
|
-- vim.keymap.set( "n", "<leader>as", "<cmd>ClaudeCodeTreeAdd<cr>", {desc = "Add file", ft = { "NvimTree", "neo-tree", "oil", "minifiles" }})
|
|
-- vim.keymap.set( "n", "<leader>aa", "<cmd>ClaudeCodeDiffAccept<cr>", {desc = "Accept diff" })
|
|
-- vim.keymap.set( "n", "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", {desc = "Deny diff" })
|
|
vim.api.nvim_create_autocmd("FileType", {
|
|
pattern = { "NvimTree", "neo-tree", "oil", "minifiles" },
|
|
callback = function()
|
|
vim.keymap.set("n", "<leader>as", "<cmd>ClaudeCodeTreeAdd<cr>", {
|
|
desc = "Add file",
|
|
buffer = true
|
|
})
|
|
end,
|
|
})
|
|
|
|
-- COC Keybindings
|
|
|
|
vim.keymap.set( "n", "K", function() _G.ShowDocumentation() end, { noremap = true, silent = true, desc = "Show Documentation" })
|
|
vim.keymap.set( "n", "<leader>l", "", {desc = "LSP" })
|
|
vim.keymap.set( "n", "<leader>lc", "", {desc = "Completions" })
|
|
vim.keymap.set( "n", "<leader>lch", "<cmd>CocCommand document.toggleInlayHint<cr>", {desc = "Toggle Inline Hints" })
|
|
vim.keymap.set( "n", "<leader>lcs", "<cmd>CocOutline<cr>", {desc = "Show Symbol Outline" })
|
|
vim.keymap.set( "n", "<leader>lcl", "<cmd>CocCommand document.toggleCodeLens<cr>", {desc = "Show Code Lens" })
|
|
vim.keymap.set( "n", "<leader>lo", "", {desc = "Overlays" })
|
|
vim.keymap.set( "n", "<leader>lod", "<cmd>Trouble dignostics<cr>", {desc = "Diagnostics" })
|
|
vim.keymap.set( "n", "<leader>los", "<cmd>Trouble symbols<cr>", {desc = "Symbols" })
|
|
|
|
-- Tag-like functionality using LSP
|
|
vim.keymap.set( "n", "<leader>lt", "", {desc = "Tags" })
|
|
vim.keymap.set( "n", "<leader>lts", ":Telescope lsp_document_symbols<CR>", {desc = "Document Symbols" })
|
|
vim.keymap.set( "n", "<leader>ltw", ":Telescope lsp_workspace_symbols<CR>", {desc = "Workspace Symbols" })
|
|
vim.keymap.set( "n", "<leader>ltd", ":Telescope lsp_dynamic_workspace_symbols<CR>", {desc = "Dynamic Workspace Symbols" })
|
|
vim.keymap.set( "n", "<C-]>", "<cmd>lua vim.lsp.buf.definition()<cr>", {desc = "Go to Definition" })
|
|
vim.keymap.set( "n", "<C-t>", "<C-o>", {desc = "Jump Back" })
|
|
vim.keymap.set( "n", "g]", "<cmd>lua vim.lsp.buf.references()<cr>", {desc = "Find References" })
|
|
|
|
-- Top Pickers & Explorer
|
|
vim.keymap.set("n", "<leader><space>", ":lua Snacks.picker.smart()<cr>", { desc = "Smart Find Files" })
|
|
vim.keymap.set("n", "<leader>/", ":lua Snacks.picker.grep()<cr>", { desc = "Grep" })
|
|
vim.keymap.set("n", "<leader>:", ":lua Snacks.picker.command_history()<cr>", { desc = "Command History" })
|
|
vim.keymap.set("n", "<leader>n", ":lua Snacks.picker.notifications()<cr>", { desc = "Notification History" })
|
|
-- vim.keymap.set("n", "<leader>e", ":lua Snacks.explorer()<cr>", { desc = "File Explorer" })
|
|
vim.keymap.set("n", "<leader>e", ":Lexplore<cr>", { desc = "File Explorer" })
|
|
vim.keymap.set("n", "<leader>fb", ":lua Snacks.picker.buffers()<cr>", { desc = "Buffers" })
|
|
vim.keymap.set("n", "<leader>ff", ":lua Snacks.picker.files()<cr>", { desc = "Find Files" })
|
|
vim.keymap.set("n", "<leader>fg", ":lua Snacks.picker.git_files()<cr>", { desc = "Find Git Files" })
|
|
vim.keymap.set("n", "<leader>fp", ":lua Snacks.picker.projects()<cr>", { desc = "Projects" })
|
|
vim.keymap.set("n", "<leader>fr", ":lua Snacks.picker.recent()<cr>", { desc = "Recent" })
|
|
vim.keymap.set("n", "<leader>Gb", ":lua Snacks.picker.git_branches()<cr>", { desc = "Git Branches" })
|
|
vim.keymap.set("n", "<leader>Gl", ":lua Snacks.picker.git_log()<cr>", { desc = "Git Log" })
|
|
vim.keymap.set("n", "<leader>GL", ":lua Snacks.picker.git_log_line()<cr>", { desc = "Git Log Line" })
|
|
vim.keymap.set("n", "<leader>Gs", ":lua Snacks.picker.git_status()<cr>", { desc = "Git Status" })
|
|
vim.keymap.set("n", "<leader>GS", ":lua Snacks.picker.git_stash()<cr>", { desc = "Git Stash" })
|
|
vim.keymap.set("n", "<leader>Gd", ":lua Snacks.picker.git_diff()<cr>", { desc = "Git Diff (Hunks)" })
|
|
vim.keymap.set("n", "<leader>Gf", ":lua Snacks.picker.git_log_file()<cr>", { desc = "Git Log File" })
|
|
vim.keymap.set("n", "<leader>sb", ":lua Snacks.picker.buffers()<cr>", { desc = "Buffers" })
|
|
vim.keymap.set("n", "<leader>ss", ":lua Snacks.picker.smart()<cr>", { desc = "Smart Find Files" })
|
|
vim.keymap.set("n", "<leader>sp", ":lua Snacks.picker.projects()<cr>", { desc = "Projects" })
|
|
vim.keymap.set("n", "<leader>sr", ":lua Snacks.picker.recent()<cr>", { desc = "Recent" })
|
|
vim.keymap.set("n", "<leader>sw", ":lua Snacks.picker.words()<cr>", { desc = "Next Reference" })
|
|
vim.keymap.set("n", "<leader>sw", ":lua Snacks.words.jump(vim.v.count1)<cr>", { desc = "Next Reference" })
|
|
vim.keymap.set("n", "<leader>sw", ":lua Snacks.words.jump(-vim.v.count1)<cr>", { desc = "Prev Reference" })
|
|
|
|
-- Terminal
|
|
-- vim.keymap.set("n", "<c-/>", ":lua Snacks.terminal()<cr>", { desc = "Toggle Terminal" })
|
|
-- vim.keymap.set("n", "<c-_>", ":lua Snacks.terminal()<cr>", { desc = "which_key_ignore" })
|
|
|
|
-- Words Jump
|
|
vim.keymap.set("n", "]]", ":lua Snacks.words.jump(vim.v.count1)<cr>", { desc = "Next Reference", })
|
|
vim.keymap.set("n", "[[", ":lua Snacks.words.jump(-vim.v.count1)<cr>", { desc = "Prev Reference", })
|