-- See `:help telescope` and `:help telescope.setup()` require('telescope').setup { defaults = { mappings = { i = { -- [""] = "move_selection_next", -- [""] = "move_selection_previous", [""] = require("telescope.actions.layout").toggle_preview, [""] = false, }, }, layout_config = { vertical = { height = 0.8 }, -- other layout configuration here preview_cutoff = 0, }, }, pickers = { buffers = { show_all_buffers = true, sort_lastused = true, theme = "dropdown", previewer = false, mappings = { i = { [""] = "delete_buffer", }, n = { [""] = "delete_buffer", } } }, }, extensions = { aerial = { -- Display symbols as .. show_nesting = { ["_"] = false, -- This key will be the default json = true, -- You can set the option for specific filetypes yaml = true, }, }, }, } -- Enable telescope fzf native, if installed pcall(require('telescope').load_extension, 'fzf') pcall(require('telescope').load_extension, 'repo') -- See `:help telescope.builtin` vim.keymap.set('n', 'T', ':Telescope', { desc = '[T]elescope' }) vim.keymap.set('n', 'f', require('telescope.builtin').oldfiles, { desc = '[F] Find recently opened files' }) vim.keymap.set('n', 'b', require('telescope.builtin').buffers, { desc = '[B] Find existing buffers' }) vim.keymap.set('n', 'st', require('telescope.builtin').builtin, { desc = '[S]earch [T]elescope for builtin' }) vim.keymap.set('n', 'gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' }) vim.keymap.set('n', 'sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' }) vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) vim.keymap.set('n', 'sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' }) vim.keymap.set('n', 'sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' }) vim.keymap.set('n', 'sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' }) vim.keymap.set('n', 'sk', require('telescope.builtin').keymaps, { desc = '[S]earch [K]eymaps' }) vim.keymap.set('n', 'sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' }) -- For grep in current buffer vim.keymap.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' }) -- For neovim config files vim.keymap.set('n', 'sn', function() require('telescope.builtin').find_files { cwd = vim.fn.stdpath 'config', follow = true } end, { desc = '[S]earch [N]eovim files' }) -- Get snippets from ~/helper/snippets vim.keymap.set('n', 'ss', function() local current_filetype = vim.bo.filetype local cwd = '/home/pham/helper/snippets/' .. current_filetype require('telescope.builtin').find_files { prompt_title = 'Select a snippet for ' .. current_filetype, cwd = cwd, attach_mappings = function(prompt_bufnr, map) local insert_selected_snippet = function() local file = require('telescope.actions.state').get_selected_entry()[1] local snippet_content = vim.fn.readfile(cwd .. "/" .. file) require('telescope.actions').close(prompt_bufnr) vim.api.nvim_command('normal! h') vim.api.nvim_put(snippet_content, '', false, true) end map('i', '', insert_selected_snippet) map('n', '', insert_selected_snippet) return true end, } end, { desc = '[S]earch [S]nippets' })