From 0860db73ae6fd9a6f6347219d820bf026a6b8b91 Mon Sep 17 00:00:00 2001 From: Robert Günzler Date: Sun, 27 Sep 2026 17:38:39 +0200 Subject: * MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Automated-commit-by: dots Signed-off-by: Robert Günzler --- .config/nvim/lua/plugins/fzf.lua | 98 +++++++++++++++++++++++++++++++++------- 1 file changed, 82 insertions(+), 16 deletions(-) (limited to '.config/nvim/lua/plugins/fzf.lua') diff --git a/.config/nvim/lua/plugins/fzf.lua b/.config/nvim/lua/plugins/fzf.lua index 73246a8..1a25c0d 100644 --- a/.config/nvim/lua/plugins/fzf.lua +++ b/.config/nvim/lua/plugins/fzf.lua @@ -1,5 +1,6 @@ return { { + enabled = true, 'ibhagwan/fzf-lua', dependencies = { 'echasnovski/mini.icons', @@ -13,10 +14,12 @@ return { { 'default' }, -- OPTIONS winopts = { + backdrop = 0, split = 'belowright 20new', border = 'none', preview = { border = 'none', + hidden = true, }, -- on_create = function() end, }, @@ -27,11 +30,12 @@ return { ['ctrl-p'] = 'up', }, }, - -- actions = { - -- files = { - -- ['ctrl-q'] = { fn = fzf.actions.file_sel_to_qf }, - -- }, - -- }, + actions = { + files = { + true, + ['ctrl-q'] = { fn = fzf.actions.file_sel_to_qf, prefix = 'select-all' }, + }, + }, fzf_colors = true, -- PICKER CONFIG files = { @@ -39,7 +43,7 @@ return { }, marks = { marks = '[a-zA-Z]', - } + }, }) end, keys = { @@ -48,11 +52,26 @@ return { { mode = 'n', ';b', 'FzfLua buffers', desc = 'fzf: buffers' }, { mode = 'n', ';f', 'FzfLua files', desc = 'fzf: find_files' }, { mode = 'n', ';g', 'FzfLua live_grep', desc = 'fzf: live_grep' }, - { mode = 'n', ';d', 'FzfLua diagnostics_workspace', desc = 'fzf: workspace diagnostics' }, - { mode = 'n', ';D', 'FzfLua diagnostics_document', desc = 'fzf: document diagnostics' }, + { + mode = 'n', + ';D', + 'FzfLua diagnostics_workspace sort=true', + desc = 'fzf: workspace diagnostics', + }, + { + mode = 'n', + ';d', + 'FzfLua diagnostics_document sort=true', + desc = 'fzf: document diagnostics', + }, { mode = 'n', ';h', 'FzfLua helptags', desc = 'fzf: help' }, { mode = 'n', ';s', 'FzfLua lsp_document_symbols', desc = 'fzf: document symbols' }, - { mode = 'n', ';w', 'FzfLua lsp_live_workspace_symbols', desc = 'fzf: workspace symbols' }, + { + mode = 'n', + ';w', + 'FzfLua lsp_live_workspace_symbols', + desc = 'fzf: workspace symbols', + }, { mode = 'n', ';m', 'FzfLua marks', desc = 'fzf: marks' }, { mode = 'n', @@ -62,12 +81,60 @@ return { end, desc = 'fzf: vim_config', }, - -- { - -- mode = 'n', - -- ';;t', - -- 'Telescope', - -- desc = 'telescope: select (interactive)', - -- }, + { + mode = 'n', + ';z', + function() + -- register one-time autocmd to open changed directory with oil + vim.api.nvim_create_autocmd('DirChanged', { + pattern = '*', + callback = vim.schedule_wrap(function(args) + vim.cmd.Oil(args.file) + end), + once = true, + }) + require('fzf-lua').zoxide() + end, + desc = 'fzf: zoxide', + }, + { + mode = 'n', + ';Z', + function() + require('fzf-lua').live_grep({ + cwd = vim.env.ZK_NOTEBOOK_DIR, + actions = { + ['ctrl-c'] = function(selected, opts) + local utils = require('fzf-lua.utils') + + local title = opts.last_query + local p = vim + .system({ 'zk', 'new', '--dry-run', '--no-input', '--title', title }, { text = true }) + :wait() + if not p.code == 0 then + return + end + utils.info(vim.inspect(p.stdout)) + + local note_path = vim.trim(p.stderr) + local note_body = vim.split(p.stdout, '\n') + require('mod.win').open(note_path, note_body, { + buf = { filetype = 'markdown' }, + }) + end, + }, + }) + end, + desc = 'fzf: zettelkasten', + }, + { + mode = 'n', + ';T', + function() + require('fzf-lua').live_grep({ regex = '(TODO|XXX|NOTE|HACK):' }) + end, + desc = 'fzf: zettelkasten', + }, { mode = 'n', ';;f', @@ -78,7 +145,6 @@ return { else dir = vim.fn.expand('%:p:h') end - -- require('fzf-lua').files({ cwd = dir }) _G.feedkeys(':Fzf files cwd=' .. dir) end, desc = 'fzf: files (interactive)', -- cgit 1.4.1