/neovim-fuzzy

Fuzzy file finding for neovim

Primary LanguageVim ScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

              neovim-fuzzy


Fuzzy file finding for neovim, via fzy[1].

[1]: https://github.com/jhawthorn/fzy

. 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
  algorithm[2].

  [2]: https://github.com/jhawthorn/fzy/blob/master/ALGORITHM.md

. Requirements

  * neovim >= 0.1.5
  * fzy
  * rg[1] or ag[2] >= 0.33.0

  [1]: https://github.com/BurntSushi/ripgrep
  [2]: http://geoff.greer.fm/ag/

. 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 <Ctrl-P> 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_use_default_keymap = 0

  Set your own keybindings for opening files in splits with:

      autocmd FileType fuzzy tnoremap <silent> <buffer> <C-T> <C-\><C-n>:FuzzyOpenInTab<CR>
      autocmd FileType fuzzy tnoremap <silent> <buffer> <C-S> <C-\><C-n>:FuzzyOpenInSplit<CR>
      autocmd FileType fuzzy tnoremap <silent> <buffer> <C-V> <C-\><C-n>:FuzzyOpenInVSplit<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.