local fzf = require("fzf-lua") local wide = { width = 160, height = 30, preview = { horizontal = "right:50%" }, } fzf.setup({ defaults = { lopen = "lopen", copen = "copen", }, winopts = { width = 80, height = 30, row = 0.5, col = 0.5, backdrop = 100, }, keymap = { builtin = { false, [""] = "toggle-fullscreen", [""] = "preview-half-page-down", [""] = "preview-half-page-up", [""] = "preview-down", [""] = "preview-up", }, fzf = { false, ["ctrl-y"] = "accept", }, }, actions = { files = { false, ["enter"] = fzf.actions.file_edit, ["ctrl-s"] = fzf.actions.file_split, ["ctrl-v"] = fzf.actions.file_vsplit, ["ctrl-t"] = fzf.actions.file_tabedit, ["ctrl-q"] = { fn = fzf.actions.file_sel_to_ll, prefix = "select-all", }, ["alt-q"] = { fn = fzf.actions.file_sel_to_qf, prefix = "select-all", }, }, }, files = { hidden = true, no_ignore = true, previewer = false, }, grep = { hidden = true, rg_opts = "--iglob=!.venv --iglob=!vendor " .. require("fzf-lua.defaults").defaults.grep.rg_opts, winopts = wide, }, oldfiles = { cwd_only = true, previewer = false, include_current_session = true, }, buffers = { sort_lastused = true, previewer = false, }, highlights = { winopts = wide, }, lsp = { winopts = wide, }, diagnostics = { winopts = wide, multiline = 1, }, }) vim.keymap.set("n", "ff", fzf.files) vim.keymap.set("n", "fr", fzf.oldfiles) vim.keymap.set("n", "fg", fzf.live_grep) vim.keymap.set("n", "fG", function() fzf.live_grep({ cwd = vim.fn.expand("%:p:h") }) end) vim.keymap.set("n", "fb", fzf.buffers) vim.keymap.set("n", "fh", fzf.highlights) vim.keymap.set("n", "gd", fzf.lsp_definitions) vim.keymap.set("n", "grr", fzf.lsp_references) vim.keymap.set("n", "gri", fzf.lsp_implementations) vim.keymap.set("n", "grt", fzf.lsp_typedefs) vim.keymap.set("n", "fd", fzf.diagnostics_document) vim.keymap.set("n", "fD", fzf.diagnostics_workspace)