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