Skip to content

Fuzzy picker & vim.ui.select implementation via fzy for neovim

License

Notifications You must be signed in to change notification settings

mfussenegger/nvim-fzy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvim-fzy

A vim.ui.select implementation for the fzy CLI.

Installation

  • Requires Neovim (latest stable or nightly)
  • Install fzy and make sure it is in your $PATH.
  • nvim-fzy is a plugin. Install it like any other plugin:
    • If using vim-plug: Plug 'mfussenegger/nvim-fzy'
    • If using packer.nvim: use 'mfussenegger/nvim-fzy'

Usage

nvim-fzy provides the vim.ui.select implementation and a execute function to feed the output of commands to fzy.

Create some mappings like this:

lua fzy = require('fzy')
nnoremap <silent><leader>ff :lua fzy.execute('fd', fzy.sinks.edit_file)<CR>
nnoremap <silent><leader>fg :lua fzy.execute('git ls-files', fzy.sinks.edit_file)<CR>
nnoremap <silent><leader>fl :lua fzy.execute('ag --nobreak --noheading .', fzy.sinks.edit_live_grep)<CR>

See :help fzy for more information

demo

To get additional pickers to jump to tags and other stuff, you can use it in combination with nvim-qwahl

Enjoy

Customize

  • You can override the new_pop function if you want to customize the floating window.
  • You can override the command function if you want to customize the fzy shell command.

Take a look at the source to see the default implementations.

Goals

  • Have a simple API so people can create their custom actions.
  • Include the essentials, but not much more than that.

This plugin is pretty much done and won't see feature additions, unless there is a convincing case to be made.

Alternatives

About

Fuzzy picker & vim.ui.select implementation via fzy for neovim

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors 3

  •  
  •  
  •  

Languages