summaryrefslogtreecommitdiff
path: root/nvim/lua/config/keymaps.lua
blob: fadfc9f259d4fb5a6bd8fe5addf1edb7b47b2b39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

vim.keymap.set('n', '<leader>c', '<C-w>c', { noremap = true, silent = true, desc = 'Close window' })
vim.keymap.set('n', '<leader>o', '<C-w>o', { noremap = true, silent = true, desc = 'Close other windows' })

-- z means laZy (plugin manager)
vim.keymap.set('n', '<leader>z', ':Lazy<CR>', { noremap = true, silent = true, desc = 'Open Lazy.nvim' })

-- LSP binds
-- default gd searches only in current buffer as a keyword
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { noremap = true, silent = true, desc = 'Open definition' })

-- Fugitive shortcuts
vim.keymap.set('n', '<leader>gd', ':Gvdiffsplit<CR>', { noremap = true, silent = true, desc = 'Git diff (unstaged changes)' })
vim.keymap.set('n', '<leader>gD', ':Gvdiffsplit HEAD<CR>', { noremap = true, silent = true, desc = 'Git diff (all changes after HEAD)' })
vim.keymap.set('n', '<leader>gs', ':Git<CR>', { noremap = true, silent = true, desc = 'Git status' })
vim.keymap.set('n', '<leader>gb', ':Git blame<CR>', { noremap = true, silent = true, desc = 'Git blame' })
vim.keymap.set('n', '<leader>gl', ':Git log<CR>', { noremap = true, silent = true, desc = 'Git log' })
vim.keymap.set('n', '<leader>gL', ':0Gclog<CR>', { noremap = true, silent = true, desc = 'Git log: this file' })
vim.keymap.set('n', '<leader>ge', ':Gedit<CR>', { noremap = true, silent = true, desc = 'Git: return to worktree' })

vim.keymap.set('n', '<leader>e', ':lua MiniFiles.open(vim.api.nvim_buf_get_name(0), false)<CR>', { noremap = true, silent = true, desc = 'File Explorer' })
vim.keymap.set('n', '<leader>aa', ':argadd<CR>:argdedupe<CR>', { noremap = true, silent = true, desc = 'Add to args' })
vim.keymap.set('n', '<leader>ad', ':argdelete %<CR>', { noremap = true, silent = true, desc = 'Delete from args' })
vim.keymap.set('n', '<leader>lr', ':lsp restart<CR>', { noremap = true, silent = true, desc = 'LSP: restart' })
vim.keymap.set('n', '<leader>ld', ':lsp disable<CR>', { noremap = true, silent = true, desc = 'LSP: stop' })
vim.keymap.set('n', '<leader>le', ':lsp enable<CR>', { noremap = true, silent = true, desc = 'LSP: start' })
vim.keymap.set('n', '<leader>li', ':checkhealth vim.lsp<CR>', { noremap = true, silent = true, desc = 'LSP: info' })