114 lines
4.4 KiB
Lua
114 lines
4.4 KiB
Lua
local function map(mode, lhs, rhs, opts)
|
|
local options = {noremap = false}
|
|
if opts then options = vim.tbl_extend('force', options, opts) end
|
|
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
|
end
|
|
|
|
local function noremap(mode, lhs, rhs, opts)
|
|
local options = {noremap = true}
|
|
if opts then options = vim.tbl_extend('force', options, opts) end
|
|
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
|
end
|
|
|
|
-- leader
|
|
vim.g.mapleader = ' '
|
|
|
|
-- visual block indenting
|
|
noremap('v', '<', '<gv')
|
|
noremap('v', '>', '>gv')
|
|
|
|
-- centered cursor
|
|
noremap('n', 'n', 'nzz')
|
|
noremap('n', 'N', 'Nzz')
|
|
noremap('n', 'J', 'mzJ`z')
|
|
|
|
-- escape terminal mode
|
|
noremap('t', '<Esc>', '<C-\\><C-n>')
|
|
|
|
-- newline without entering insert mode
|
|
noremap('n', '<C-J>', 'o<Esc>')
|
|
noremap('n', '<C-K>', 'O<Esc>')
|
|
|
|
-- movement
|
|
noremap('n', '<leader>h', ':wincmd h<cr>')
|
|
noremap('n', '<leader>j', ':wincmd j<cr>')
|
|
noremap('n', '<leader>k', ':wincmd k<cr>')
|
|
noremap('n', '<leader>l', ':wincmd l<cr>')
|
|
|
|
-- splits and buffers
|
|
noremap('n', '<leader>sv', ':vsplit<CR>')
|
|
noremap('n', '<leader>sz', ':split<CR>')
|
|
noremap('n', '<leader>st', ':tabnew<CR>')
|
|
noremap('n', '<leader>sb', ':Telescope buffers<CR>')
|
|
noremap('n', '<leader>sh', ':tabprevious<cr>')
|
|
noremap('n', '<leader>sl', ':tabnext<cr>')
|
|
|
|
-- basics
|
|
noremap('n', '<leader>q', ':q<CR>')
|
|
noremap('n', '<leader>Q', ':qa<CR>')
|
|
noremap('n', '<leader>x', ':q!<CR>')
|
|
noremap('n', '<leader>X', ':qa!<CR>')
|
|
noremap('n', '<leader>w', ':w<CR>')
|
|
noremap('n', '<leader>W', ':wa<CR>')
|
|
noremap('n', '<leader>f', ':NvimTreeToggle<CR>')
|
|
noremap('n', '<leader>F', ':Telescope find_files<CR>')
|
|
|
|
-- toggle term
|
|
noremap('n', '<leader>c', ':ToggleTermToggleAll<CR>')
|
|
noremap('n', '<leader>C', ':ToggleTerm<CR>')
|
|
|
|
-- frequent actions
|
|
noremap('n', '<leader>ar', ':source ~/.config/nvim/init.lua<CR>')
|
|
noremap('n', '<leader>ac', ':cd ~/.config/nvim/<CR>')
|
|
|
|
-- keymap switches
|
|
noremap('n', '<leader>me', ':set keymap=<CR>')
|
|
noremap('n', '<leader>mh', ':set keymap=hebrew<CR>')
|
|
|
|
-- telescope
|
|
noremap('n', '<leader>tt', ':Telescope<CR>')
|
|
noremap('n', '<leader>tl', ':Telescope lsp_dynamic_workspace_symbols<CR>')
|
|
noremap('n', '<leader>to', ':Telescope oldfiles<CR>')
|
|
noremap('n', '<leader>tg', ':Telescope live_grep<CR>')
|
|
noremap('n', '<leader>ts', ':Telescope treesitter<CR>')
|
|
|
|
-- code
|
|
noremap('n', '<leader>gf', ':Neoformat<CR>')
|
|
noremap('n', '<leader>gd', ':Telescope lsp_definitions<CR>')
|
|
noremap('n', '<leader>gi', ':Telescope lsp_implementations<CR>')
|
|
noremap('n', '<leader>gr', ':Telescope lsp_references<CR>')
|
|
noremap('n', '<leader>ga', ':Telescope lsp_code_actions<CR>')
|
|
noremap('n', '<leader>gq', ':Telescope lsp_workspace_diagnostics<CR>')
|
|
noremap('n', '<leader>gD', ':lua vim.lsp.buf.declaration()<CR>')
|
|
noremap('n', '<leader>gk', ':lua vim.lsp.buf.hover()<CR>')
|
|
noremap('n', '<leader>gt', ':lua vim.lsp.buf.type_definition()<CR>')
|
|
noremap('n', '<leader>gn', ':lua vim.lsp.buf.rename()<CR>')
|
|
noremap('n', '<leader>ge', ':lua vim.lsp.diagnostic.show_line_diagnostics()<CR>')
|
|
noremap('n', '[d', ':lua vim.lsp.diagnostic.goto_prev()<CR>')
|
|
noremap('n', ']d', ':lua vim.lsp.diagnostic.goto_next()<CR>')
|
|
|
|
-- debug mappings
|
|
noremap('n', '<leader>dc', ":lua require'dap'.continue()<CR>")
|
|
noremap('n', '<leader>dn', ":lua require'dap'.step_over()<CR>")
|
|
noremap('n', '<leader>di', ":lua require'dap'.step_into()<CR>")
|
|
noremap('n', '<leader>do', ":lua require'dap'.step_out()<CR>")
|
|
noremap('n', '<leader>db', ":lua require'dap'.toggle_breakpoint()<CR>")
|
|
noremap('n', '<leader>dl', ":lua require'dap'.run_last()<CR>")
|
|
noremap('n', '<leader>dq', ":lua require'dap'.close()<CR>")
|
|
noremap('n', '<leader>dv', ':Telescope dap variables<CR>')
|
|
noremap('n', '<leader>dh', ':Telescope dap commands<CR>')
|
|
noremap('n', '<leader>dp', ':Telescope dap list_breakpoints<CR>')
|
|
noremap('n', '<leader>du', ":lua require'dapui'.toggle()<CR>")
|
|
|
|
-- git
|
|
noremap('n', '<leader>vs', ':Git<CR>')
|
|
noremap('n', '<leader>vb', ':Telescope git_branches<CR>')
|
|
noremap('n', '<leader>vc', ':Telescope git_commits<CR>')
|
|
noremap('n', '<leader>vf', ':Telescope git_files<CR>')
|
|
|
|
-- vsnip jumpable mappings
|
|
map('i', '<Tab>', "vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'", {expr = true})
|
|
map('s', '<Tab>', "vsnip#jumpable(1) ? '<Plug>(vsnip-jump-next)' : '<Tab>'", {expr = true})
|
|
map('i', '<S-Tab>', "vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-next)' : '<S-Tab>'", {expr = true})
|
|
map('s', '<S-Tab>', "vsnip#jumpable(-1) ? '<Plug>(vsnip-jump-next)' : '<S-Tab>'", {expr = true})
|