You've already forked dotfiles
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.
69 lines
2.4 KiB
Lua
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>')
|