Files
dotfiles/nvim/lua/keymappings.lua
FaultyBranches abe81c01b3 feat: A working state during the transfer between the old neovim
configurations and using newer built-in functionality in the 0.12.x
versions of Neovim.

Further work is needed for treesitter updates, cleanup of the conversion
work and testing to verify old functionality isn't lessened to get the
benefits of a cleaner config and vastly faster load times.
2026-05-23 20:28:34 -05:00

69 lines
2.4 KiB
Lua

vim.g.mapleader = ','
-- Expose custom functions for binding
local custom_functions = require('custom_functions')
-- Standard keybinding options
local options = { noremap = true }
-- Block tab/untab without leaving visual mode
vim.keymap.set('v', '<', '<gv', options)
vim.keymap.set('v', '>', '>gv', options)
-- Visual selection can be moved up and down
vim.keymap.set('v', 'J', ':m \'>+1<CR>gv=gv')
vim.keymap.set('v', 'K', ':m \'<-2<CR>gv=gv')
-- Sort selected lines alphabetically, descending
vim.keymap.set('v', '<leader>s', ':sort<CR>', options)
-- Move between panes in Neovim
vim.keymap.set('n', '<C-j>', '<C-w>j', options)
vim.keymap.set('n', '<C-k>', '<C-w>k', options)
vim.keymap.set('n', '<C-h>', '<C-w>h', options)
vim.keymap.set('n', '<C-l>', '<C-w>l', options)
-- Increment and decrement under the cursor
vim.keymap.set('n', '+', '<C-a>')
vim.keymap.set('v', '+', '<C-a>')
vim.keymap.set('n', '-', '<C-x>')
vim.keymap.set('v', '-', '<C-x>')
-- Don't move the cursor when appending the following line to the current
vim.keymap.set('n', 'J', 'mzJ`z')
-- Switch or close buffers in the window
vim.keymap.set('n', '<leader>n', ':bn<CR>', options)
vim.keymap.set('n', '<leader>p', ':bp<CR>', options)
vim.keymap.set('n', '<leader>x', ':bp<bar>vs<bar>bn<bar>bd<CR>', options) -- Previous buffer, split, next buffer, delete buffer
-- Toggle spellcheck
vim.keymap.set('n', '<leader>s', ':set spell!<CR>', options)
-- Quick exit from Insert mode
vim.keymap.set('i', 'jk', '<ESC>', options)
-- Toggle display of whitespace chars
vim.keymap.set('n', '<leader>w', ':set list!<CR>', options)
-- Folding the section under the cursor
vim.keymap.set('n', '<space>', 'za')
-- Comment toggling
vim.keymap.set('n', '<leader>c', 'gcc', {remap=true})
vim.keymap.set('v', '<leader>c', 'gc', {remap=true})
-- Keymaps for custom functions
vim.keymap.set('n', '<leader>et', function() custom_functions.execute('test') end)
vim.keymap.set('n', '<leader>er', function() custom_functions.execute('run') end)
vim.keymap.set('n', '<leader>ec', function() custom_functions.execute('compile') end)
vim.keymap.set('n', '<leader>eb', function() custom_functions.execute('benchmark') end)
vim.keymap.set('n', '<leader>eu', function() custom_functions.execute('upload') end)
-- Netrw directory exploration
vim.keymap.set('n', '<leader>eo', ':Lexplore<CR>', options)
-- Allow for leaving Terminal mode using the escape key instead of the odd default
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>')