-- Keymaps vim.keymap.set('n', '', 'nohlsearch') vim.keymap.set('n', 'w', ':w', { desc = 'Save File' }) vim.keymap.set('n', 'pv', ':Ex', { desc = 'Go back to Dir' }) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) -- Disable arrow keys vim.keymap.set('n', '', 'echo "Use h to move!!"') vim.keymap.set('n', '', 'echo "Use l to move!!"') vim.keymap.set('n', '', 'echo "Use k to move!!"') vim.keymap.set('n', '', 'echo "Use j to move!!"') -- Window navigation 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' }) -- Auto-close brackets vim.keymap.set('i', '(', '()') vim.keymap.set('i', '[', '[]') vim.keymap.set('i', '{', '{}') vim.keymap.set('i', '"', '""') vim.keymap.set('i', "'", "''") -- Smart enter for brackets vim.keymap.set('i', '', function() local line = vim.api.nvim_get_current_line() local col = vim.api.nvim_win_get_cursor(0)[2] local before = line:sub(col, col) local after = line:sub(col + 1, col + 1) if (before == '{' and after == '}') or (before == '[' and after == ']') or (before == '(' and after == ')') then return '' else return '' end end, { expr = true }) -- Move lines up/down with Alt+J/K vim.keymap.set('n', '', ':m .+1==', { desc = 'Move line down' }) vim.keymap.set('n', '', ':m .-2==', { desc = 'Move line up' }) vim.keymap.set('v', '', ":m '>+1gv=gv", { desc = 'Move selection down' }) vim.keymap.set('v', '', ":m '<-2gv=gv", { desc = 'Move selection up' }) -- Comment/uncomment lines with Ctrl+, vim.keymap.set('n', '', 'gcc', { desc = 'Comment line', remap = true }) vim.keymap.set('v', '', 'gc', { desc = 'Comment selection', remap = true }) vim.keymap.set('v', '', '"+y', { desc = 'Copy to clipboard' })