Add fzf-lua for project navigation

Wraps the fzf binary already installed via brew, alongside rg and fd,
so it needs no plugin dependencies - unlike telescope, which would
also pull in plenary. Picks up nvim-web-devicons for file icons, which
is the first thing actually using that plugin.

Maps live under <leader>f: files, live grep, buffers, grep the word
under the cursor, and help tags. The intent is to stop treating netrw
as the way into a project and switch to jumping by name, leaving
buffers open and bouncing between them, rather than quitting out of
nvim to change file.

Netrw is untouched and still on :Ex for browsing an unfamiliar tree.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jonny Barnes 2026-08-08 18:39:48 +01:00
commit 865b52c2e5
No known key found for this signature in database
4 changed files with 21 additions and 0 deletions

View file

@ -0,0 +1,15 @@
vim.pack.add({ 'https://github.com/ibhagwan/fzf-lua' })
local fzf = require('fzf-lua')
fzf.setup()
local function map(lhs, rhs, desc)
vim.keymap.set('n', lhs, rhs, { desc = desc })
end
map('<leader>ff', fzf.files, 'Find files')
map('<leader>fg', fzf.live_grep, 'Grep project')
map('<leader>fb', fzf.buffers, 'Switch buffer')
map('<leader>fw', fzf.grep_cword, 'Grep word under cursor')
map('<leader>fh', fzf.helptags, 'Search help')

View file

@ -1,3 +1,4 @@
require('config.plugins.fzf-lua')
require('config.plugins.gitsigns')
require('config.plugins.web-devicons')
require('config.plugins.which-key')

View file

@ -7,6 +7,7 @@ wk.setup()
-- Names for the <leader> prefixes, so the popup groups them sensibly
wk.add({
{ '<leader>d', group = 'diagnostics' },
{ '<leader>f', group = 'find' },
{ '<leader>h', group = 'hunks' },
{ '<leader>t', group = 'toggles' },
})

View file

@ -1,5 +1,9 @@
{
"plugins": {
"fzf-lua": {
"rev": "8671012a7b2a1648595952c655039d51fb301c14",
"src": "https://github.com/ibhagwan/fzf-lua"
},
"gitsigns.nvim": {
"rev": "31d6fb2d618bca1482b9f274751ead5f03461408",
"src": "https://github.com/lewis6991/gitsigns.nvim"