You've already forked dotfiles
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>')
|