-- [[ 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 }) -- [[ 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 = '*', }) -- [[ Configure Telescope ]] -- See `:help telescope` and `:help telescope.setup()` require('telescope').setup { defaults = { file_ignore_patterns = { "node_modules", "tags", "art", "bin", "dlls", "__pycache__" }, mappings = { i = { [''] = false, [''] = false, }, }, }, } -- Enable telescope fzf native, if installed pcall(require('telescope').load_extension, 'fzf') -- other maps vim.keymap.set('n', 'mm', vim.cmd.Ex) -- ctags keymap vim.keymap.set('n', '', ':tab split:exec("tag ".expand(""))') vim.keymap.set('n', '', ':vsp :exec("tag ".expand(""))') -- build keymap vim.keymap.set('n', '', ':!./build.sh') vim.keymap.set('n', '', ':!./build.sh') -- scroll keymap vim.keymap.set('n', '', '') vim.keymap.set('n', '', '') -- See `:help telescope.builtin` local builtin = require('telescope.builtin') vim.keymap.set('n', '?', builtin.oldfiles, { desc = '[?] Find recently opened files' }) vim.keymap.set('n', '', builtin.find_files, { desc = '[S]earch [F]iles' }) vim.keymap.set('n', '/', function() -- You can pass additional configuration to telescope to change theme, layout, etc. builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { winblend = 10, previewer = false, }) end, { desc = '[/] Fuzzily search in current buffer' }) vim.keymap.set('n', '', builtin.git_files, { desc = 'Search [G]it [F]iles' }) vim.keymap.set('n', 'gf', builtin.git_files, { desc = 'Search [G]it [F]iles' }) vim.keymap.set('n', 'ff', builtin.buffers, { desc = '[ ] Find existing buffers' }) vim.keymap.set('n', 'sf', builtin.find_files, { desc = '[S]earch [F]iles' }) vim.keymap.set('n', 'sh', builtin.help_tags, { desc = '[S]earch [H]elp' }) vim.keymap.set('n', 'sw', builtin.grep_string, { desc = '[S]earch current [W]ord' }) vim.keymap.set('n', 'sr', builtin.resume, { desc = '[S]earch [R]esume' }) vim.keymap.set('n', 'sg', builtin.live_grep, { desc = '[S]earch by [G]rep' }) vim.keymap.set('n', 'sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' }) vim.keymap.set('n', 'ps', function () builtin.grep_string({ search = vim.fn.input("Grep > ") }) end) -- Diagnostic keymaps vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = "Go to previous diagnostic message" }) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = "Go to next diagnostic message" }) vim.keymap.set('n', 'e', vim.diagnostic.open_float, { desc = "Open floating diagnostic message" }) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = "Open diagnostics list" })