local set = vim.keymap.set set('n', 'gb', 'bnext', { desc = 'Next buffer' }) set('n', 'gB', 'bprevious', { desc = 'Prev buffer' }) set('n', ';yp', function() local payload = (vim.fn.expand('%:p') .. ':' .. vim.fn.line('.')) vim.fn.setreg('+', payload) vim.notify(payload) end, { desc = 'Yank current buffer path and line number' }) set('n', ';yP', function() local payload = vim.fn.expand('%:p') vim.fn.setreg('+', payload) vim.notify(payload) end, { desc = 'Yank current buffer path' }) set('n', ';yn', function() local payload = vim.fs.basename(vim.fn.expand('%:p')) vim.fn.setreg('+', payload) vim.notify(payload) end, { desc = 'Yank current buffer name' }) set('t', '', [[ ]], { desc = 'Terminal: Exit INSERT mode' }) set('v', '<', '', '>gv', { desc = 'outdent' }) set('n', '', 'nohlsearch', { desc = 'Clear search highlights' }) set('n', '', 'normal! za', { desc = 'Toggle fold under cursor' }) set('n', '', 'normal! zA', { desc = 'Toggle fold under cursor (recursive)' })