-- move lines up & down vim.keymap.set('v', 'J', ":m '>+1gv=gv") vim.keymap.set('v', 'K', ":m '<-2gv=gv") -- move around centered vim.keymap.set('n', '', 'zz') vim.keymap.set('n', '', 'zz') vim.keymap.set('n', 'n', 'nzzzv') vim.keymap.set('n', 'N', 'Nzzzv') -- copy & paste vim.keymap.set('x', 'p', '"_dP') vim.keymap.set('n', 'y', '"+y') vim.keymap.set('v', 'y', '"+y') vim.keymap.set('n', 'Y', '"+Y') vim.keymap.set('n', 'd', '"_d') vim.keymap.set('v', 'd', '"_d') -- [[ Basic Keymaps ]] -- See `:help vim.keymap.set()` -- Clear highlights on search when pressing in normal mode -- See `:help hlsearch` vim.keymap.set('n', '', 'nohlsearch') -- Diagnostic keymaps vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) -- Keybinds to make split navigation easier. -- Use CTRL+ to switch between windows -- -- See `:help wincmd` for a list of all window commands vim.keymap.set('n', '', '', { desc = 'Move focus to the left window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the right window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the lower window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the upper window' }) -- buffer management vim.keymap.set('n', 'cc', ':bpspbnbd', { desc = '[C]lose [C]urrent buffer' }) vim.keymap.set('n', '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' })