Home

Awesome

THIS PLUGING IS NOW HOSTED ON sr.ht. Development will continue there

WARNING: This plugin is meant to be used with neovim 0.8

azy.nvim fuzzy finder for neovim based on fzy

This plugin provides a simple UI to select an item from a list.

It has the following features:

You can join us of the matrix room to ask any question or suggestion !

Installation

WARNING: this plugin will clash with nvim-fzy and guihua so you need to only have one of these installed at a time

As this plugin requires the compilation of a small C library, you will have to have the following system dependencies:

Using packer.nvim:

use { 'vigoux/azy.nvim', run = 'make lib' }

Setup

You can configure azy as any other plugin using the azy.setup function. Note though that this is not required for this plugin to work, as it only configures the features of azy:

require'azy'.setup {
  preview = false, -- Whether to preview selected items on the fly (this is an unstable feature, feedback appreciated)
  debug = false, -- Enable debug output and timings in the UI
  mappings = { -- Configure the mappings
    ["<Up>"] = "prev", -- Select the previous item
    ["<Down>"] = "next", -- Select the next item
    ["<CR>"] = "confirm", -- Confirm the selection, open the selected item
    ["<C-V>"] = "confirm_vsplit", -- Same as confirm but in a vertical split
    ["<C-H>"] = "confirm_split", -- Same as confirm but in a horizontal split

    -- Normal mode mapping are not configurable:
    -- <ESC>: exits without confirm
  },
}

Usage

This plugin provides a bunch of builtin searchs. These builtin functions return a function suitable for vim.keymap.set when called, so that one can do the following:

  vim.keymap.set("n", "<Leader>e", require'azy.builtins'.files(), {})

Examples of how to use the functions below can be found here. This is editable by everyone so feel free to add your lines there.

Builtins

LSP-related

Customizing

This plugin provides some highlight groups to customize its look:

Performances

I made this plugin so that I don't feel any blocking when I am typing. This means that in some cases where the number of entries to search from is huge, you might encounter some performance problems.

If that is the case, feel free to report an issue with the list of entries that caused the problem, and what you did when encountering the problem, and I'll be glad to look into it.

Note though that on reasonably sized word lists, you should not encounter any problem.

Furthermore, using an asynchronous UI, as the results are incrementally sorted, one should not feel any blocking point. For the record, using the asychronous UI, search in a directory with more than 300K does not lead to any blocking (any update takes less that 10ms).

Acknowledgement

This project can be considered my own version ov telescope.nvim.

The goal of this plugin will be different than telescope.nvim. This plugin focuses on speed and non-intrusivness rather that configurability.