local actions = require "fzf-lua.actions" local remap = vim.keymap.set local opts = { noremap=true, unique=true, silent=true } require'fzf-lua'.setup { fzf_bin = "fzf-tmux", fzf_tmux_opts = { ["-p"] = "90%,90%" }, winopts = { height = 0.90, width = 0.90, row = 0.35, col = 0.50, border = { '╭', '─', '╮', '│', '╯', '─', '╰', '│' }, fullscreen = false, preview = { default = 'bat' , border = 'border' , wrap = 'wrap' , hidden = 'nohidden' , vertical = 'down:45%' , horizontal = 'right:60%', layout = 'flex' , flip_columns = 120 , title = false , scrollbar = false , scrolloff = '-2' , scrollchars = {'█', '' } , delay = 100 , winopts = { number = true , relativenumber = false , cursorline = true , cursorlineopt = 'both' , cursorcolumn = false , signcolumn = 'no' , list = false , foldenable = false , foldmethod = 'manual', }, }, }, keymap = { fzf = { ["Ctrl-d"] = "half-page-down" , ["Ctrl-u"] = "half-page-up" , ["Ctrl-a"] = "beginning-of-line", ["Ctrl-e"] = "end-of-line" , ["Ctrl-n"] = "preview-down" , ["Ctrl-p"] = "preview-up" , ["Ctrl-f"] = "preview-page-down", ["Ctrl-b"] = "preview-page-up" , ["Ctrl-z"] = "abort" , ["Ctrl-t"] = "toggle-all" , }, }, actions = { files = { ["default"] = actions.file_edit_or_qf, ["Ctrl-s"] = actions.file_split , ["Ctrl-v"] = actions.file_vsplit , ["Ctrl-t"] = actions.file_tabedit , ["Ctrl-q"] = actions.file_sel_to_qf , }, buffers = { ["default"] = actions.buf_edit , ["Ctrl-s"] = actions.buf_split , ["Ctrl-v"] = actions.buf_vsplit , ["Ctrl-t"] = actions.buf_tabedit, } }, fzf_opts = { ['--ansi'] = '' , ['--prompt'] = '> ' , ['--info'] = 'inline' , ['--height'] = '100%' , ['--layout'] = 'reverse', ["--border"] = "rounded", ["--no-separator"] = "" , }, previewers = { bat = { theme = 'Monokai Extended Bright', }, }, files = { multiprocess = true , git_icons = false, file_icons = false, color_icons = false, }, git = { files = { prompt = 'GitFiles❯ ', cmd = 'git ls-files --exclude-standard', multiprocess = true , git_icons = false, file_icons = false, color_icons = false, }, status = { prompt = 'GitStatus❯ ', cmd = "git status -s", previewer = "git_diff", file_icons = false, git_icons = false, color_icons = false, actions = { ["right"] = { actions.git_unstage, actions.resume }, ["left"] = { actions.git_stage, actions.resume }, }, }, commits = { prompt = 'Commits❯ ', cmd = "git log --decorate --pretty=oneline --abbrev-commit --color", preview = "git show --color=always {1}", actions = { ["default"] = actions.git_buf_split , ["Ctrl-s"] = actions.git_buf_split , ["Ctrl-v"] = actions.git_buf_vsplit , ["Ctrl-t"] = actions.git_buf_tabedit, }, }, bcommits = { prompt = 'BCommits❯ ', cmd = "git log --decorate --pretty=oneline --abbrev-commit --color", preview = "git show --color=always {1}", actions = { ["default"] = actions.git_buf_split , ["Ctrl-s"] = actions.git_buf_split , ["Ctrl-v"] = actions.git_buf_vsplit , ["Ctrl-t"] = actions.git_buf_tabedit, }, }, branches = { prompt = 'Branches❯ ', cmd = "git branch --all --color", preview = "git log --decorate --graph --pretty=oneline --abbrev-commit --color {1}", actions = { ["default"] = actions.git_switch, }, }, stash = { prompt = 'Stash> ', cmd = "git --no-pager stash list", preview = "git --no-pager stash show --patch --color {1}", actions = { ["default"] = actions.git_stash_apply, ["ctrl-x"] = { actions.git_stash_drop, actions.resume }, }, }, }, grep = { prompt = 'Rg❯ ' , input_prompt = 'Grep For❯ ', multiprocess = true , git_icons = false , file_icons = false , color_icons = false , rg_glob = true , }, args = { prompt = 'Args❯ ', files_only = true , actions = { ["Ctrl-x"] = actions.arg_del } }, oldfiles = { prompt = 'History❯ ', cwd_only = false , }, buffers = { prompt = 'Buffers❯ ', file_icons = false , color_icons = false , sort_lastused = true , actions = { ["Ctrl-x"] = { actions.buf_del, actions.resume }, } }, tabs = { prompt = 'Tabs❯ ', tab_title = "Tab" , tab_marker = "<<" , file_icons = false , color_icons = false , actions = { ["default"] = actions.buf_switch, ["Ctrl-x"] = { actions.buf_del, actions.resume }, }, }, lines = { previewer = "builtin", prompt = 'Lines❯ ', show_unlisted = false , no_term_buffers = true , }, blines = { previewer = "builtin" , prompt = 'BLines❯ ', show_unlisted = false , no_term_buffers = true , }, quickfix = { file_icons = false, git_icons = false, }, lsp = { prompt_postfix = 'Lsp❯ ', cwd_only = false , async_or_timeout = 5000 , file_icons = false , git_icons = false , }, diagnostics ={ prompt = 'Diagnostics❯ ', cwd_only = false , file_icons = false , git_icons = false , diag_icons = false , icon_padding = '' , }, manpages = { previewer = { _ctor = false } }, } -- Buffers and Files remap('n', 'b' , ':FzfLua buffers' , opts) remap('n', 'B' , ':FzfLua oldfiles' , opts) remap('n', 'fF', ':FzfLua files' , opts) remap('n', 'fl', ':FzfLua blines' , opts) remap('n', 'fL', ':FzfLua lines' , opts) remap('n', 'fq', ':cclose:FzfLua quickfix' , opts) remap('n', 'fQ', ':lclose:FzfLua loclist' , opts) -- Git remap('n', 'ff', ':FzfLua git_files' , opts) remap('n', '/' , ':FzfLua git_status' , opts) remap('n', 'fb', ':FzfLua git_branches' , opts) remap('n', 'fc', ':FzfLua git_bcommits' , opts) remap('x', 'fc', 'FzfLua git_bcommits' , opts) remap('n', 'fC', ':FzfLua git_commits' , opts) remap('n', 'ft', ':FzfLua git_stash' , opts) -- Grep remap('n', 'fg' , ':FzfLua grep' , opts) remap('n', 'f/' , ':FzfLua live_grep' , opts) remap('n', 'f\\', ':FzfLua live_grep_resume' , opts) remap('n', 'fs' , ':FzfLua grep_cword' , opts) remap('n', 'fS' , ':FzfLua grep_cWORD' , opts) remap('x', 'fs' , ':FzfLua grep_visual' , opts) remap('n', 'fr' , ':FzfLua grep_last' , opts) remap('n', 'fR' , ':FzfLua live_grep_glob' , opts) -- Misc remap('n', 'fh', ':FzfLua command_history' , opts) remap('n', 'fH', ':FzfLua search_history' , opts) remap('n', 'fm', ':FzfLua marks' , opts) remap('n', 'fM', ':FzfLua man_pages' , opts) remap('n', 'fo', ':FzfLua changes' , opts) remap('n', 'fO', ':FzfLua jumps' , opts) remap('n', 'fk', ':FzfLua keymaps' , opts) -- LSP remap('n', 'lr', ':FzfLua lsp_references' , opts) remap('n', 'ld', ':FzfLua lsp_definitions' , opts) remap('n', 'lD', ':FzfLua lsp_declarations' , opts) remap('n', 'lt', ':FzfLua lsp_typedefs' , opts) remap('n', 'li', ':FzfLua lsp_implementations' , opts) remap('n', 'ls', ':FzfLua lsp_document_symbols' , opts) remap('n', 'lw', ':FzfLua lsp_workspace_symbols' , opts) remap('n', 'lW', ':FzfLua lsp_live_workspace_symbols', opts) remap('n', 'la', ':FzfLua lsp_code_actions' , opts) remap('n', 'le', ':FzfLua lsp_document_diagnostics' , opts) remap('n', 'lE', ':FzfLua lsp_workspace_diagnostics' , opts)