-- defaults local opts = { noremap = true, silent = true } -- copy vim.api.nvim_set_keymap('', '', '"+y', opts) -- paste vim.api.nvim_set_keymap('', '', '"+p', opts) -- cut vim.api.nvim_set_keymap('', '', '"+d', opts) -- paste in insert mode vim.api.nvim_set_keymap('i', '', '"+pa', opts) -- better tree vim.api.nvim_set_keymap('n', '', ":Lexplore :vertical resize 30", { noremap = true }) -- make the cursor stay on the same character when leaving insert mode vim.api.nvim_set_keymap('i', 'ć', 'l', opts) vim.api.nvim_set_keymap('i', 'Ć', 'l', opts) -- make ctrl-shift arrows line movement vim.api.nvim_set_keymap('n', '', 'ddkP', opts) vim.api.nvim_set_keymap('v', '', ':m \'<-2gv=gv', opts) vim.api.nvim_set_keymap('n', '', 'ddp', opts) vim.api.nvim_set_keymap('v', '', ':m \'>+1gv=gv', opts) -- fast scrolling --vim.api.nvim_set_keymap('n', '', '9j', opts) --vim.api.nvim_set_keymap('n', '', '9k', opts) --vim.api.nvim_set_keymap('v', '', '9j', opts) --vim.api.nvim_set_keymap('v', '', '9k', opts) -- stay in normal mode after inserting a new line vim.api.nvim_set_keymap('', 'o', 'o ', opts) vim.api.nvim_set_keymap('', 'O', 'O ', opts) -- mapping that opens .vimrc in a new tab for quick editing vim.api.nvim_set_keymap('n', 'ev', 'tabe $MYVIMRC', opts) -- mapping that sources the vimrc in the current filea doesn't work, should change all require calls to dofile -- or clear all require cache and reimport -- vim.api.nvim_set_keymap('n', 'sv', 'lua dofile(vim.fn.stdpath(\'config\')..\'/init.lua\')', { noremap = true, silent = false }) -- Mapping U to Redo. vim.api.nvim_set_keymap('', 'U', '', opts) vim.api.nvim_set_keymap('', '', '', opts) -- indent via Tab vim.api.nvim_set_keymap('n', '', '>>_', opts) vim.api.nvim_set_keymap('n', '', '<<_', opts) vim.api.nvim_set_keymap('v', '', '>>_', opts) vim.api.nvim_set_keymap('v', '', '<<_', opts) vim.api.nvim_set_keymap('i', '', '\t', opts) vim.api.nvim_set_keymap('i', '', '\b', opts) -- window movement vim.api.nvim_set_keymap('', '', '', opts) vim.api.nvim_set_keymap('', '', '', opts) vim.api.nvim_set_keymap('', '', '', opts) vim.api.nvim_set_keymap('', '', '', opts) -- opening terminal with shortcut vim.api.nvim_set_keymap('', '', 'silent !$TERM &', opts) -- jumping back and forth vim.api.nvim_set_keymap('', '', '', opts) vim.api.nvim_set_keymap('', '', '', opts) -- LSP vim.api.nvim_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) vim.api.nvim_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) vim.api.nvim_set_keymap('n', 'gt', 'lua vim.lsp.buf.type_definition()', opts) vim.api.nvim_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) vim.api.nvim_set_keymap('n', 'gf', 'lua vim.lsp.buf.references()', opts) -- usages replaced by LspSaga plugin -- vim.api.nvim_set_keymap('n', 'ga', 'lua vim.lsp.buf.code_action()', opts) -- eg. autoimport -- vim.api.nvim_set_keymap('n', 'gn', 'lua vim.lsp.diagnostic.goto_next()', opts) -- vim.api.nvim_set_keymap('n', 'gN', 'lua vim.lsp.diagnostic.goto_prev()', opts) -- vim.api.nvim_set_keymap('n', 'h', 'lua vim.lsp.buf.hover()', opts) -- vim.api.nvim_set_keymap('n', 'gr', 'lua vim.lsp.buf.rename()', opts) -- autocomplete -- if autocomplete popup menu opens pressing enter will complete the first match --vim.api.nvim_set_keymap('i', '', 'v:lua.smart_tab()', {expr = true, noremap = true}) vim.api.nvim_set_keymap('i', '', 'pumvisible() ? "a" : ""', {expr = true, noremap = true, silent = true})