2023-04-07 16:24:48 +00:00
|
|
|
local function map(mode, combo, mapping, opts)
|
|
|
|
local options = {noremap = true}
|
2024-01-02 17:59:50 +00:00
|
|
|
if opts then
|
2023-04-07 16:24:48 +00:00
|
|
|
options = vim.tbl_extend('force', options, opts)
|
|
|
|
end
|
|
|
|
vim.api.nvim_set_keymap(mode, combo, mapping, options)
|
|
|
|
end
|
|
|
|
|
|
|
|
vim.g.mapleader = ' '
|
|
|
|
|
|
|
|
-- Navigate through panes using lead key and vim direction
|
|
|
|
map('', '<leader>h', ':wincmd h<CR>')
|
|
|
|
map('', '<leader>j', ':wincmd j<CR>')
|
|
|
|
map('', '<leader>k', ':wincmd k<CR>')
|
|
|
|
map('', '<leader>l', ':wincmd l<CR>')
|
|
|
|
|
2023-04-07 23:31:08 +00:00
|
|
|
-- Create splits and tabs
|
|
|
|
map('', '<leader>v', ':vsp<CR>')
|
|
|
|
map('', '<leader>b', ':sp<CR>')
|
|
|
|
map('', '<leader>W', ':tabnew<CR>')
|
|
|
|
|
2023-04-07 16:24:48 +00:00
|
|
|
-- Move to tab using lead key plus number
|
|
|
|
map('', '<leader>1', '1gt')
|
|
|
|
map('', '<leader>2', '2gt')
|
|
|
|
map('', '<leader>3', '3gt')
|
|
|
|
map('', '<leader>4', '4gt')
|
|
|
|
map('', '<leader>5', '5gt')
|
|
|
|
map('', '<leader>6', '6gt')
|
|
|
|
map('', '<leader>7', '7gt')
|
|
|
|
map('', '<leader>8', '8gt')
|
|
|
|
map('', '<leader>9', '9gt')
|
|
|
|
map('', '<leader>0', '10gt')
|
|
|
|
|
|
|
|
-- Open undotree panel
|
|
|
|
map('', '<leader>u', ':UndotreeToggle<CR>')
|
|
|
|
|
2024-01-31 10:38:34 +00:00
|
|
|
-- Open lazygit in floating window for current repository --
|
|
|
|
vim.keymap.set('', '<leader>G', function() require("lazygit_integration").run() end)
|
|
|
|
|
2023-04-07 16:24:48 +00:00
|
|
|
--- Telescope ---
|
|
|
|
-- List project files
|
2024-01-02 17:59:50 +00:00
|
|
|
vim.keymap.set('', '<C-p>', function() require("plugins/telescope/custom").project_files() end)
|
2023-04-07 16:24:48 +00:00
|
|
|
|
|
|
|
-- Grep through files in project
|
|
|
|
vim.keymap.set('', '<C-f>', ":Telescope live_grep<CR>")
|
|
|
|
|
|
|
|
--- Miscellaneous
|
|
|
|
-- Toggle line wrap
|
|
|
|
vim.keymap.set('', '<leader>w', function()
|
|
|
|
vim.cmd("set wrap! linebreak! nolist!")
|
|
|
|
end)
|
|
|
|
|
|
|
|
-- Format markdown tables
|
2023-04-07 23:31:08 +00:00
|
|
|
map('', '<leader>t', ":TableFormat<CR>")
|
|
|
|
|
|
|
|
-- Open lazy.nvim menu
|
|
|
|
map('', '<leader>lh', ":Lazy home<CR>")
|
2023-04-12 10:08:11 +00:00
|
|
|
|
|
|
|
-- Allow transparent scrolling through wrapped lines
|
|
|
|
vim.api.nvim_set_keymap("n", "k", "v:count == 0 ? 'gk' : 'k'", { noremap = true, expr = true, silent = true })
|
|
|
|
vim.api.nvim_set_keymap("n", "j", "v:count == 0 ? 'gj' : 'j'", { noremap = true, expr = true, silent = true })
|