Files
dotfiles/nvim/lua/config/keybinds.lua
2025-08-24 22:33:05 -05:00

51 lines
2.6 KiB
Lua

vim.keymap.set('n', '<C-s>', '<cmd>w<CR>', { silent = true })
vim.keymap.set('i', '<C-s>', '<cmd>w<CR>', { silent = true })
vim.keymap.set('n', '<leader>qa', '<cmd>qa!<CR>', { desc = 'Force quit without saving'})
vim.keymap.set('n', '<leader>qx', '<cmd>xa!<CR>', { desc = 'Write to all then force quit'})
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
vim.keymap.set('v', 'R', 's')
-- Faster Window Navigation
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { silent=true, desc = 'Move focus to the left window' })
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { silent=true, desc = 'Move focus to the right window' })
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { silent=true, desc = 'Move focus to the lower window' })
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { silent=true, desc = 'Move focus to the upper window' })
-- Terminal
-- or just use <C-\><C-n> to exit terminal mode
vim.keymap.set('t', '<C-x>', '<C-\\><C-n>', { silent=true, desc = 'Exit terminal mode' })
-- Skipping Sections
vim.keymap.set('n', '<C-Up>', 'zz20kzz', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('n', '<C-Down>', 'zz20jzz', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('i', '<C-Up>', '<C-o>2k', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('i', '<C-Down>', '<C-o>2j', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('n', '<A-k>', 'zz20kzz', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('n', '<A-j>', 'zz20jzz', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('n', '<A-h>', '10h', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('n', '<A-l>', '10l', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('i', '<A-k>', '<C-o>2k', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('i', '<A-j>', '<C-o>2j', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('i', '<A-l>', '<C-o>10l', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('i', '<A-h>', '<C-o>10h', { silent=true, desc = 'Skip Large Sections' })
vim.keymap.set('n', '<C-q>', '<CMD>q<CR>', { silent=true, desc='Close Window' })
vim.keymap.set('n', 's', '', {desc="[S]urround"}) -- Dunno but this is needed to stop some weird substitution thing
vim.keymap.set('n', 'm', 'q', {desc="Macro"})
vim.keymap.set('n', 'q', '') -- Record fights me so often
-- Highlight when yanking
vim.api.nvim_create_autocmd('TextYankPost', {
desc = 'Highlight when yanking (copying) text',
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
callback = function()
vim.highlight.on_yank()
end,
})