orthos/lua/keymap.lua

41 lines
1.8 KiB
Lua

-- Normal mode mappings
vim.keymap.set('n', '<leader>gd', vim.lsp.buf.hover, { noremap = true })
vim.keymap.set('n', '<leader>tw', function() MiniTrailspace.trim() end, { noremap = true })
-- Terminal and buffer mappings
vim.keymap.set('n', '<leader>tt', '<cmd>terminal<CR>', { noremap = true })
vim.keymap.set('t', '<Esc>', '<C-\\><C-n>', { noremap = true })
vim.keymap.set('n', '<C-Space>', '<cmd>bprev<CR>', { noremap = true })
-- Move selected text up/down in visual mode
vim.keymap.set('v', 'J', ":m '>+1<CR>gv=gv", { noremap = true })
vim.keymap.set('v', 'K', ":m '<-2<CR>gv=gv", { noremap = true })
-- Keep cursor in the middle when jumping or joining lines
vim.keymap.set('n', 'J', 'mzJ`z', { noremap = true })
vim.keymap.set('n', '<C-d>', '<C-d>zz', { noremap = true })
vim.keymap.set('n', '<C-u>', '<C-u>zz', { noremap = true })
vim.keymap.set('n', 'n', 'nzzzv', { noremap = true })
vim.keymap.set('n', 'N', 'Nzzzv', { noremap = true })
-- Interface with system clipboard in normal, visual, and select modes
vim.keymap.set({ 'n', 'v', 'x' }, '<leader>y', '\'+y', { noremap = true, silent = true })
vim.keymap.set({ 'n', 'v', 'x' }, '<leader>Y', '\'+yy', { noremap = true, silent = true })
vim.keymap.set({ 'n', 'v', 'x' }, '<leader>p', '\'+p', { noremap = true, silent = true })
vim.keymap.set('n', '<leader>ff', ':Pick files<CR>')
vim.keymap.set('n', '<leader>fb', ':Pick buffers<CR>')
vim.keymap.set('n', '<leader>h', ':Pick help<CR>')
vim.keymap.set('n', '<leader>e', ':Oil<CR>')
vim.keymap.set('n', '<leader>lf', vim.lsp.buf.format)
vim.keymap.set('n', '<leader>o', ':update<CR> :source<CR>')
vim.keymap.set('n', '<leader>w', ':write<CR>')
vim.keymap.set('n', '<leader>q', ':quit<CR>')
vim.keymap.set({ 'n', 'v', 'x' }, '<leader>y', "'+y<CR>")
vim.keymap.set({ 'n', 'v', 'x' }, '<leader>d', "'+d<CR>")