Files
neovim/lua/keymaps.lua
2025-06-27 13:13:07 +01:00

60 lines
2.2 KiB
Lua

-- move lines up & down
vim.keymap.set('v', 'J', ":m '>+1<CR>gv=gv")
vim.keymap.set('v', 'K', ":m '<-2<CR>gv=gv")
-- move around centered
vim.keymap.set('n', '<C-d>', '<C-d>zz')
vim.keymap.set('n', '<C-u>', '<C-u>zz')
vim.keymap.set('n', 'n', 'nzzzv')
vim.keymap.set('n', 'N', 'Nzzzv')
-- copy & paste
vim.keymap.set('x', '<leader>p', '"_dP')
vim.keymap.set('n', '<leader>y', '"+y')
vim.keymap.set('v', '<leader>y', '"+y')
vim.keymap.set('n', '<leader>Y', '"+Y')
vim.keymap.set('n', '<leader>d', '"_d')
vim.keymap.set('v', '<leader>d', '"_d')
-- [[ Basic Keymaps ]]
-- See `:help vim.keymap.set()`
-- Clear highlights on search when pressing <Esc> in normal mode
-- See `:help hlsearch`
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
-- Diagnostic keymaps
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
-- Keybinds to make split navigation easier.
-- Use CTRL+<hjkl> to switch between windows
--
-- See `:help wincmd` for a list of all window commands
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
-- buffer management
vim.keymap.set('n', '<leader>cc', ':bp<bar>sp<bar>bn<bar>bd<CR>', { desc = '[C]lose [C]urrent buffer' })
vim.keymap.set('n', '<leader>ch', function()
local bufinfos = vim.fn.getbufinfo { buflisted = 1 }
local skipCount = 0
local deleteCount = 0
vim.tbl_map(function(bufinfo)
if bufinfo.changed == 1 then
skipCount = skipCount + 1
elseif not bufinfo.windows or #bufinfo.windows == 0 then
deleteCount = deleteCount + 1
vim.api.nvim_buf_delete(bufinfo.bufnr, { force = false, unload = false })
end
print(('Deleted %d out of %d hidden buffers'):format(deleteCount, deleteCount + skipCount))
end, bufinfos)
end, { desc = '[C]lose [H]idden buffers' })
vim.keymap.set('n', '<leader>tt', function()
vim.diagnostic.open_float(nil, { focus = false })
end, { desc = 'Toggle Trouble' })