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) -- Visual selection can be moved up and down vim.keymap.set('v', 'J', ':m \'>+1gv=gv') vim.keymap.set('v', 'K', ':m \'<-2gv=gv') -- Sort selected lines alphabetically, descending vim.keymap.set('v', 's', ':sort', options) -- Move between panes in Neovim vim.keymap.set('n', '', 'j', options) vim.keymap.set('n', '', 'k', options) vim.keymap.set('n', '', 'h', options) vim.keymap.set('n', '', 'l', options) -- Increment and decrement under the cursor vim.keymap.set('n', '+', '') vim.keymap.set('v', '+', '') vim.keymap.set('n', '-', '') vim.keymap.set('v', '-', '') -- 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', 'n', ':bn', options) vim.keymap.set('n', 'p', ':bp', options) vim.keymap.set('n', 'x', ':bpvsbnbd', options) -- Previous buffer, split, next buffer, delete buffer -- Toggle spellcheck vim.keymap.set('n', 's', ':set spell!', options) -- Quick exit from Insert mode vim.keymap.set('i', 'jk', '', options) -- Toggle display of whitespace chars vim.keymap.set('n', 'w', ':set list!', options) -- Folding the section under the cursor vim.keymap.set('n', '', 'za') -- Comment toggling vim.keymap.set('n', 'c', 'gcc', {remap=true}) vim.keymap.set('v', 'c', 'gc', {remap=true}) -- Keymaps for custom functions vim.keymap.set('n', 'et', function() custom_functions.execute('test') end) vim.keymap.set('n', 'er', function() custom_functions.execute('run') end) vim.keymap.set('n', 'ec', function() custom_functions.execute('compile') end) vim.keymap.set('n', 'eb', function() custom_functions.execute('benchmark') end) vim.keymap.set('n', 'eu', function() custom_functions.execute('upload') end) -- Netrw directory exploration vim.keymap.set('n', 'eo', ':Lexplore', options) -- Allow for leaving Terminal mode using the escape key instead of the odd default vim.keymap.set('t', '', '')