vim.g.mapleader = ' ' -- Quick write vim.keymap.set('n', '<leader>w', ':w!<CR>', { remap = false }) -- Treat long lines as line containing breaks vim.keymap.set('n', 'j', 'gj', { remap = false }) vim.keymap.set('n', 'k', 'gk', { remap = false }) vim.keymap.set('n', '<leader>tn', ':tabnew<Space>', { remap = false }) vim.keymap.set('n', '<leader>tc', ':tabclose<CR>', { remap = false }) vim.keymap.set('n', '<leader>to', ':tabonly<CR>', { remap = false }) vim.keymap.set('n', '<leader>tm', ':tabmove<Space>', { remap = false }) -- Quickly access spelling menu vim.keymap.set('i', '<C-s>', '<C-g>u<C-X>s', { remap = false }) vim.keymap.set('n', '<C-s>', 'i<C-g>u<C-X>s', { remap = false }) -- Clear search highlights vim.keymap.set('n', '<leader><Space>', ':nohlsearch<CR>', { remap = false }) -- Disable 'Q' from opening Ex mode vim.keymap.set('n', 'Q', '<nop>', { remap = false }) -- System clipboard yank/put vim.keymap.set('', '<leader>y', '"+y', { remap = false }) vim.keymap.set('', '<leader>Y', '"+Y', { remap = false }) vim.keymap.set('', '<leader>p', '"+p', { remap = false }) vim.keymap.set('', '<leader>P', '"+P', { remap = false }) -- Undo neovim's default mapping of Y to y$ vim.cmd.unmap('Y') -- Make nvim :terminal more like vim :terminal vim.keymap.set('t', '<C-w>N', '<C-\\><C-n>', { remap = true }) -- Mappings to make navigating :Termdebug local opts = { remap = false, silent = true } vim.keymap.set('n', '<C-w><C-g>', ':Gdb<CR>:startinsert<CR>', opts) vim.keymap.set('n', '<C-w><C-e>', ':Program<CR>', opts) vim.keymap.set('n', '<C-w><C-s>', ':Source<CR>', opts) vim.keymap.set('n', '<C-w><C-a>', ':Asm<CR>', opts) vim.keymap.set('t', '<C-w><C-g>', '<C-\\><C-n>:Gdb<CR>:startinsert<CR>', opts) vim.keymap.set('t', '<C-w><C-e>', '<C-\\><C-n>:Program<CR>', opts) vim.keymap.set('t', '<C-w><C-s>', '<C-\\><C-n>:Source<CR>', opts) vim.keymap.set('t', '<C-w><C-a>', '<C-\\><C-n>:Asm<CR>', opts)