-- Keymaps for better default experience -- See `:help vim.keymap.set()` local k = vim.keymap -- for conciseness -- [[==== GENERAL KEYMAPS ====]] -- [[ Search ]] -- after search highlights everything and you hit enter -- the highlights are "stuck". To clear them, use leader + nh ("no highlight") k.set("n", "nh", ":nohl") -- when deleting a single character, don't save that character to the register k.set("n", "x", '"_x') -- [[ Manage Splits ]] k.set("n", "sv", "v", { desc = "Split window Vertically" }) k.set("n", "sh", "s", { desc = "Split window Horitonzally" }) k.set("n", "se", "=", { desc = "Split Equally" }) k.set("n", "sx", ":close", { desc = "Split close" }) -- [[ Manage Tabs ]] k.set("n", "to", ":tabnew", { desc = "Open new tab" }) k.set("n", "tx", ":tabclose", { desc = "Close current tab" }) k.set("n", "tn", ":tabn", { desc = "Go to next tab" }) k.set("n", "tp", ":tabp", { desc = "Go to previous tab" }) -- [[ Annoyances in Vim ]] -- make space be a no-opt in visual and normal mode k.set({ 'n', 'v' }, '', '', { silent = true }) -- Remap for dealing with word wrap k.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) k.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -- [[ Diagnostics ]] k.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' }) k.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) k.set('n', 'e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) k.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) -- [[==== PLUGIN KEYMAPS ====]] -- vim-maximizer -- keymap.set("n", "sm", ":MaximizerToggle") -- [[ Configure Oil ]] k.set("n", "-", "Oil", { desc = "Open parent directory" }) -- [[ Configure Telescope ]] -- keymap.set("n", "ff", "Telescope find_files") -- find files in current project -- keymap.set("n", "fs", "Telescope live_grep") -- find text in current project -- keymap.set("n", "fc", "Telescope grep_string") -- find current string cursor is on in current project -- keymap.set("n", "fb", "Telescope buffers") -- show active buffers -- keymap.set("n", "fh", "Telescope help_tags") -- show help tags -- See `:help telescope.builtin` k.set('n', '?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' }) k.set('n', '', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' }) k.set('n', '/', function() -- You can pass additional configuration to telescope to change theme, layout, etc. require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { winblend = 10, previewer = false, }) end, { desc = '[/] Fuzzily search in current buffer' }) k.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) k.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) k.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) k.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) k.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) k.set('n', 'sG', ':LiveGrepGitRoot', { desc = '[S]earch by [G]rep on Git Root' }) k.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) k.set('n', 'sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' })