return { 'ibhagwan/fzf-lua', -- optional for icon support dependencies = { 'nvim-tree/nvim-web-devicons' }, -- or if using mini.icons/mini.nvim -- dependencies = { "echasnovski/mini.icons" }, opts = {}, config = function() require('fzf-lua').setup { defaults = { git_icons = false, file_icons = false, color_icons = false, }, } local get_open_filelist = function(cwd) local bufnrs = filter(function(b) if 1 ~= vim.fn.buflisted(b) then return false end return true end, vim.api.nvim_list_bufs()) if not next(bufnrs) then return end local filelist = {} for _, bufnr in ipairs(bufnrs) do local file = vim.api.nvim_buf_get_name(bufnr) table.insert(filelist, Path:new(file):make_relative(cwd)) end return filelist end local builtin = require 'fzf-lua' vim.keymap.set('n', 'sh', builtin.helptags, { desc = '[S]earch [H]elp' }) vim.keymap.set('n', 'sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' }) vim.keymap.set('n', 'sf', builtin.files, { desc = '[S]earch [F]iles' }) vim.keymap.set('n', 'ss', builtin.builtin, { desc = '[S]earch [S]elect FzfLua' }) vim.keymap.set('n', 'sw', builtin.grep_cword, { desc = '[S]earch current [W]ord' }) vim.keymap.set('n', 'sw', builtin.grep_cWORD, { desc = '[S]earch current [W]ORD' }) vim.keymap.set('n', 'sg', builtin.live_grep, { desc = '[S]earch by Live[G]rep' }) vim.keymap.set('n', 'sd', builtin.diagnostics_document, { desc = '[S]earch [D]iagnostics' }) vim.keymap.set('n', 'sr', builtin.resume, { desc = '[S]earch [R]esume' }) vim.keymap.set('n', 's.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) vim.keymap.set('n', '', builtin.buffers, { desc = '[ ] Find existing buffers' }) -- Slightly advanced example of overriding default behavior and theme vim.keymap.set('n', '/', builtin.lgrep_curbuf, { desc = '[/] Fuzzily search in current buffer' }) -- It's also possible to pass additional configuration options. -- See `:help telescope.builtin.live_grep()` for information about particular keys vim.keymap.set('n', 's/', function() require('fzf-lua').fzf_live(get_open_filelist(vim.fn.getcwd())) end, { desc = '[S]earch [/] in Open Files' }) -- Shortcut for searching your Neovim configuration files vim.keymap.set('n', 'sn', function() builtin.files { cwd = vim.fn.stdpath 'config' } end, { desc = '[S]earch [N]eovim files' }) end, }