summary refs log tree commit diff
path: root/.vim/lua/internal/plugins/fzf.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2025-04-30 13:12:21 +0200
committerRobert Günzler <r@gnzler.io>2025-04-30 13:12:21 +0200
commit59bdb9bc3f7b06b886a24def842f62f350f1411b (patch)
tree67190cf96bb7fde11324934187caba05705ed977 /.vim/lua/internal/plugins/fzf.lua
parentb73d408fd9e9b1af65ad3efe8b0cc1244ccd71cf (diff)
vim: telescope -> fzf
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.vim/lua/internal/plugins/fzf.lua')
-rw-r--r--.vim/lua/internal/plugins/fzf.lua91
1 files changed, 91 insertions, 0 deletions
diff --git a/.vim/lua/internal/plugins/fzf.lua b/.vim/lua/internal/plugins/fzf.lua
new file mode 100644
index 0000000..e8c0a9c
--- /dev/null
+++ b/.vim/lua/internal/plugins/fzf.lua
@@ -0,0 +1,91 @@
+return {
+  {
+    enabled = true,
+    'ibhagwan/fzf-lua',
+    lazy = false,
+    dependencies = {
+      'echasnovski/mini.icons',
+    },
+    config = function()
+      local fzf = require('fzf-lua')
+      fzf.register_ui_select()
+      fzf.setup({
+        -- PROFILE
+        { 'default' },
+        -- OPTIONS
+        winopts = {
+          split = 'belowright 20new',
+          border = 'none',
+          preview = {
+            border = 'none',
+          },
+          -- on_create = function() end,
+        },
+        keymap = {
+          fzf = {
+            true,
+            ['ctrl-n'] = 'down',
+            ['ctrl-p'] = 'up',
+          },
+        },
+        fzf_colors = true,
+        -- PICKER CONFIG
+        files = {
+          file_icons = true,
+        },
+      })
+    end,
+    keys = {
+      { mode = 'n', ';<space>', '<cmd>FzfLua<cr>', desc = 'fzf: select' },
+      { mode = 'n', ';/', '<cmd>FzfLua blines<cr>', desc = 'fzf: current_buffer_fuzzy_find' },
+      { mode = 'n', ';b', '<cmd>FzfLua buffers<cr>', desc = 'fzf: buffers' },
+      { mode = 'n', ';f', '<cmd>FzfLua files<cr>', desc = 'fzf: find_files' },
+      { mode = 'n', ';g', '<cmd>FzfLua live_grep<cr>', desc = 'fzf: live_grep' },
+      { mode = 'n', ';d', '<cmd>FzfLua diagnostics_workspace<cr>', desc = 'fzf: diagnostics' },
+      { mode = 'n', ';h', '<cmd>FzfLua helptags<cr>', desc = 'fzf: diagnostics' },
+      {
+        mode = 'n',
+        ';v',
+        function()
+          require('fzf-lua').files({ cwd = vim.fn.stdpath('config') })
+        end,
+        desc = 'fzf: vim_config',
+      },
+      -- {
+      --   mode = 'n',
+      --   ';;t',
+      --   '<cmd>Telescope<cr>',
+      --   desc = 'telescope: select (interactive)',
+      -- },
+      {
+        mode = 'n',
+        ';;f',
+        function()
+          local dir
+          if vim.opt.filetype:get() == 'oil' then
+            dir = require('oil').get_current_dir()
+          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)',
+      },
+      {
+        mode = 'n',
+        ';;g',
+        function()
+          local dir
+          if vim.opt.filetype:get() == 'oil' then
+            dir = require('oil').get_current_dir()
+          else
+            dir = vim.fn.expand('%:p:h')
+          end
+          _G.feedkeys(':Fzf live_grep cwd=' .. dir)
+        end,
+        desc = 'fzf: grep (interactive)',
+      },
+    },
+  },
+}