-- leader vim.g.mapleader = ' ' -- visual block indenting 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', '', '') -- newline without entering insert mode vim.keymap.set('n', '', 'o') vim.keymap.set('n', '', 'O') -- movement vim.keymap.set('n', 'h', ':wincmd h') vim.keymap.set('n', 'j', ':wincmd j') vim.keymap.set('n', 'k', ':wincmd k') vim.keymap.set('n', 'l', ':wincmd l') -- splits and buffers vim.keymap.set('n', 'sv', ':vsplit') vim.keymap.set('n', 'sz', ':split') vim.keymap.set('n', 'st', ':tabnew') vim.keymap.set('n', 'sb', ':Telescope buffers') vim.keymap.set('n', 'sh', ':tabprevious') vim.keymap.set('n', 'sl', ':tabnext') -- basics vim.keymap.set('n', 'q', ':q') vim.keymap.set('n', 'Q', ':qa') vim.keymap.set('n', 'x', ':q!') vim.keymap.set('n', 'X', ':qa!') vim.keymap.set('n', 'w', ':w') vim.keymap.set('n', 'W', ':wa') vim.keymap.set('n', 'f', ':NvimTreeToggle') vim.keymap.set('n', 'F', ':Telescope find_files') -- toggle term vim.keymap.set('n', 'c', ':ToggleTermToggleAll') vim.keymap.set('n', 'C', ':ToggleTerm') -- frequent actions vim.keymap.set('n', 'ar', ':source ~/.config/nvim/init.lua') vim.keymap.set('n', 'ac', ':cd ~/.config/nvim/') -- keymap switches vim.keymap.set('i', '', ':set keymap=a') vim.keymap.set('i', '', ':set keymap=hebrewa') -- telescope vim.keymap.set('n', 'tt', ':Telescope') vim.keymap.set('n', 'tl', ':Telescope lsp_dynamic_workspace_symbols') vim.keymap.set('n', 'to', ':Telescope oldfiles') vim.keymap.set('n', 'tg', ':Telescope live_grep') vim.keymap.set('n', 'ts', ':Telescope treesitter') -- code vim.keymap.set('n', 'gf', ':Neoformat') vim.keymap.set('n', 'gd', ':Telescope lsp_definitions') vim.keymap.set('n', 'gi', ':Telescope lsp_implementations') vim.keymap.set('n', 'gr', ':Telescope lsp_references') vim.keymap.set('n', 'ga', ':Telescope lsp_code_actions') vim.keymap.set('n', 'gq', ':Telescope diagnostics') vim.keymap.set('n', 'gD', function() vim.lsp.buf.declaration() end) vim.keymap.set('n', 'gk', function() vim.lsp.buf.hover() end) vim.keymap.set('n', 'gt', function() vim.lsp.buf.type_definition() end) vim.keymap.set('n', 'gn', function() vim.lsp.buf.rename() end) vim.keymap.set('n', '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', 'dc', function() require'dap'.continue() end) vim.keymap.set('n', 'dn', function() require'dap'.step_over() end) vim.keymap.set('n', 'di', function() require'dap'.step_into() end) vim.keymap.set('n', 'do', function() require'dap'.step_out() end) vim.keymap.set('n', 'db', function() require'dap'.toggle_breakpoint() end) vim.keymap.set('n', 'dl', function() require'dap'.run_last() end) vim.keymap.set('n', 'dq', function() require'dap'.close() end) vim.keymap.set('n', 'du', function() require'dapui'.toggle() end) vim.keymap.set('n', 'dv', ':Telescope dap variables') vim.keymap.set('n', 'dh', ':Telescope dap commands') vim.keymap.set('n', 'dp', ':Telescope dap list_breakpoints') -- git vim.keymap.set('n', 'vs', ':Git') vim.keymap.set('n', 'vb', ':Telescope git_branches') vim.keymap.set('n', 'vc', ':Telescope git_commits') vim.keymap.set('n', 'vf', ':Telescope git_files') -- vsnip jumpable mappings vim.keymap.set('i', '', "vsnip#jumpable(1) ? '(vsnip-jump-next)' : ''", {expr = true}) vim.keymap.set('s', '', "vsnip#jumpable(1) ? '(vsnip-jump-next)' : ''", {expr = true}) vim.keymap.set('i', '', "vsnip#jumpable(-1) ? '(vsnip-jump-prev)' : ''", {expr = true}) vim.keymap.set('s', '', "vsnip#jumpable(-1) ? '(vsnip-jump-prev)' : ''", {expr = true})