cloudhead / neovim-fuzzy

Minimalistic fuzzy file finding for neovim
BSD 3-Clause "New" or "Revised" License
111 stars 17 forks source link
fuzzy-search neovim neovim-plugin vim vim-plugin
          neovim-fuzzy

Fuzzy file finding for neovim, via fzy1.

. Rationale

To my knowledge, fzy delivers the best results out of all fuzzy finders, including fzf, ctrl-p, command-t and unite. This is due to the advanced scoring algorithm2.

. Requirements

. Installation

Install fzy via your package manager, or check https://github.com/jhawthorn/fzy for instructions.

If you're using vim-plug, add this to your vimrc:

  Plug 'cloudhead/neovim-fuzzy'

You can also copy the contents of this directory into your .vim folder.

. Usage

Add something like this to your vimrc:

  nnoremap <C-p> :FuzzyOpen<CR>

Then hit to open the finder.

Once in the fzy finder:

  <Esc>     close fzy pane
  <Enter>   open selected file with default open command
  <Ctrl-S>  open selected file in new horizontal split
  <Ctrl-V>  open selected file in new vertical split
  <Ctrl-T>  open selected file in new tab
  <Ctrl-N>  next entry
  <Ctrl-P>  previous entry

See the fzy documentation for the full list of key bindings.

neovim-fuzzy-specific keybindings can be disabled with:

  let g:fuzzy_bindkeys = 0

Set your own keybindings for opening files in splits with:

  autocmd FileType fuzzy tnoremap <silent> <buffer> <C-T> <C-\><C-n>:FuzzyOpenFileInTab<CR>
  autocmd FileType fuzzy tnoremap <silent> <buffer> <C-S> <C-\><C-n>:FuzzyOpenFileInSplit<CR>
  autocmd FileType fuzzy tnoremap <silent> <buffer> <C-V> <C-\><C-n>:FuzzyOpenFileInVSplit<CR>

When no input is given, fuzzy shows the alternate buffer (also known as '#'), followed by other open buffers, followed by all other files.

Fuzzy also lets you search within files, via the :FuzzyGrep command. You can use it on its own, or pass it an expression to search.