An asynchronous Lua API for integrating fzf fuzzy finder into Neovim with full UI interactivity.
nvim-fzf is a Lua API library that integrates the fzf fuzzy finder into Neovim (version 0.5 or higher). It provides fully asynchronous operations, enabling responsive UI interactions and seamless communication between Neovim and fzf. This library is designed for developers to build custom fzf-based interfaces directly in Lua, such as pickers for buffers, colorschemes, or helptags.
Neovim plugin developers and advanced users who want to create custom, high-performance fuzzy-finding interfaces within Neovim using Lua. It is particularly suited for those building complex integrations that require asynchronous operations, interactive previews, and custom actions.
Developers choose nvim-fzf over alternatives because it offers a low-level, asynchronous Lua API that allows for fully non-blocking operations, ensuring a snappy user experience. Its unique selling point is the ability to execute Lua functions in response to fzf events and keybindings, enabling deep integration with Neovim's capabilities, such as live buffer previews and custom actions.
A Lua API for using fzf in neovim.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides fully non-blocking operations using Lua coroutines, ensuring UI responsiveness even with long-running tasks like the helptags picker example that reads files concurrently.
Enables execution of Lua functions in response to fzf events, allowing custom previews (e.g., live buffer previews) and actions that directly manipulate Neovim state.
Supports configurable floating windows with options for borders, dimensions, and positioning (e.g., centered or relative), as detailed in the API's options table.
Accepts strings, tables, or functions for content generation, enabling dynamic and asynchronous data feeding, such as transforming shell command output with helpers.
Unlike fzf.vim, it provides only a low-level API; users must write all Lua code from scratch to create any fuzzy finder interface, increasing initial setup time.
Requires wrapping all fzf calls in coroutines, which can be error-prone for developers unfamiliar with Lua's asynchronous programming model, as emphasized in the 'Important information' section.
Depends on the fzf binary being installed and accessible, adding an external toolchain requirement that might not be ideal for all Neovim setups.
The README focuses on API reference with examples, but lacks in-depth tutorials for complex use cases, leaving developers to extrapolate from limited snippets.