-- [[ Basic Keymaps ]] -- Keymaps for better default experience -- See `:help vim.keymap.set()` vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) -- Remap for dealing with word wrap vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) vim.keymap.set('n', '', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set('n', '', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -- Remap for vertical navigation vim.keymap.set('n', '', 'zz', { noremap = true, silent = true }) vim.keymap.set('n', '', 'zz', { noremap = true, silent = true }) vim.keymap.set('n', 'n', 'nzzzv', { noremap = true, silent = true }) vim.keymap.set('n', 'N', 'Nzzzv', { noremap = true, silent = true }) -- Remap for moving selected line / block of text in visual mode vim.keymap.set('v', '', ":m '<-2gv=gv", { desc = 'Move selected lines up' }) vim.keymap.set('v', '', ":m '>+1gv=gv", { desc = 'move selected lines down' }) -- [[ Highlight on yank ]] -- See `:help vim.highlight.on_yank()` local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) vim.api.nvim_create_autocmd('TextYankPost', { callback = function() vim.highlight.on_yank() end, group = highlight_group, pattern = '*', }) -- Diagnostic keymaps vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) vim.keymap.set('n', ']d', vim.diagnostic.goto_next) vim.keymap.set('n', 'e', vim.diagnostic.open_float) vim.keymap.set('n', 'q', vim.diagnostic.setloclist) -- Plugins vim.keymap.set('n', 'nb', ':Navbuddy', { desc = '[N]av[b]uddy' }) vim.keymap.set('n', 'nt', ':NvimTreeToggle', { desc = '[N]vim[T]ree' }) -- terminal keymaps function _G.set_terminal_keymaps() local opts = { buffer = 0 } vim.keymap.set('t', '', [[]], opts) vim.keymap.set('t', '', [[wincmd h]], opts) vim.keymap.set('t', '', [[wincmd j]], opts) vim.keymap.set('t', '', [[wincmd k]], opts) vim.keymap.set('t', '', [[wincmd l]], opts) end -- -- if you only want these mappings for toggle term use term://*toggleterm#* instead vim.cmd 'autocmd! TermOpen term://* lua set_terminal_keymaps()' return {}