vim.g.mapleader = ' ' -- better window movement vim.api.nvim_set_keymap('n', '', 'h', {silent = true}) vim.api.nvim_set_keymap('n', '', 'j', {silent = true}) vim.api.nvim_set_keymap('n', '', 'k', {silent = true}) vim.api.nvim_set_keymap('n', '', 'l', {silent = true}) -- resize with arrows vim.api.nvim_set_keymap('n', '', ':resize -2', {silent = true}) vim.api.nvim_set_keymap('n', '', ':resize +2', {silent = true}) vim.api.nvim_set_keymap('n', '', ':vertical resize -2', {silent = true}) vim.api.nvim_set_keymap('n', '', ':vertical resize +2', {silent = true}) -- improved keyboard support for navigation (especially terminal) vim.api.nvim_set_keymap('n', 'h', 'h', {noremap = true}) vim.api.nvim_set_keymap('n', 'j', 'j', {noremap = true}) vim.api.nvim_set_keymap('n', 'k', 'k', {noremap = true}) vim.api.nvim_set_keymap('n', 'l', 'l', {noremap = true}) vim.api.nvim_set_keymap('n', '', 'h', {noremap = true}) vim.api.nvim_set_keymap('n', '', 'j', {noremap = true}) vim.api.nvim_set_keymap('n', '', 'k', {noremap = true}) vim.api.nvim_set_keymap('n', '', 'l', {noremap = true}) -- Change 2 split windows from vert to horiz or horiz to vert vim.api.nvim_set_keymap('n', 'th', 'tH', {noremap = true}) vim.api.nvim_set_keymap('n', 'tk', 'tK', {noremap = true}) -- Make adjusting split sizes a bit more friendly vim.cmd([[ noremap :vertical resize +3 noremap :vertical resize -3 noremap :resize +3 noremap :resize -3 ]]) -- better indenting vim.api.nvim_set_keymap('v', '<', '', '>gv', {noremap = true, silent = true}) -- I hate escape vim.api.nvim_set_keymap('i', 'jk', '', {noremap = true, silent = true}) vim.api.nvim_set_keymap('i', 'kj', '', {noremap = true, silent = true}) vim.api.nvim_set_keymap('i', 'jj', '', {noremap = true, silent = true}) -- Tab switch buffer vim.api.nvim_set_keymap('n', '', ':bnext', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', '', ':bprevious', {noremap = true, silent = true}) -- Move selected line / block of text in visual mode vim.api.nvim_set_keymap('x', 'K', ':move \'<-2gv-gv', {noremap = true, silent = true}) vim.api.nvim_set_keymap('x', 'J', ':move \'>+1gv-gv', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', 'Q', '', {noremap = true, silent = true}) -- Telescope vim.api.nvim_set_keymap('n', 'ps', ':lua require(\'telescope.builtin\').grep_string({ search = vim.fn.input("Grep For > ")})', {noremap = true}) vim.api.nvim_set_keymap('n', '', ':lua require(\'telescope.builtin\').git_files()', {noremap = true}) vim.api.nvim_set_keymap('n', 'pf', ':lua require(\'telescope.builtin\').find_files()', {noremap = true}) vim.api.nvim_set_keymap('n', 'pw', ':lua require(\'telescope.builtin\').grep_string { search = vim.fn.expand("") }', {noremap = true}) vim.api.nvim_set_keymap('n', 'pb', ':lua require(\'telescope.builtin\').buffers()', {noremap = true}) vim.api.nvim_set_keymap('n', 'vh', ':lua require(\'telescope.builtin\').help_tags()', {noremap = true}) vim.api.nvim_set_keymap('n', 'gw', ':lua require(\'telescope\').extensions.git_worktree.git_worktrees()', {noremap = true}) vim.api.nvim_set_keymap('n', 'gm', ':lua require(\'telescope\').extensions.git_worktree.create_git_worktree()', {noremap = true}) -- Tagbar vim.api.nvim_set_keymap('n', 'tt', ':SymbolsOutline', {noremap = true}) vim.api.nvim_set_keymap('n', 'hl', ':nohl', {noremap = true}) -- LSP vim.cmd("nnoremap gd lua vim.lsp.buf.definition()") vim.cmd("nnoremap gD lua vim.lsp.buf.declaration()") vim.cmd("nnoremap gr lua vim.lsp.buf.references()") vim.cmd("nnoremap gi lua vim.lsp.buf.implementation()") vim.cmd("nnoremap ca :Lspsaga code_action") vim.cmd("nnoremap K :Lspsaga hover_doc") vim.cmd('nnoremap lua vim.lsp.buf.signature_help()') vim.cmd("nnoremap :Lspsaga diagnostic_jump_prev") vim.cmd("nnoremap :Lspsaga diagnostic_jump_next") -- -- scroll down hover doc or scroll in definition preview vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(1)") -- -- scroll up hover doc vim.cmd("nnoremap lua require('lspsaga.action').smart_scroll_with_saga(-1)") vim.cmd('command! -nargs=0 LspVirtualTextToggle lua require("lsp/virtual_text").toggle()')