All Projects → raghur → Fruzzy

raghur / Fruzzy

Freaky fast fuzzy finder for (denite.nvim/CtrlP matcher) for vim/neovim

Programming Languages

python
139335 projects - #7 most used programming language
python3
1442 projects

Projects that are alternatives of or similar to Fruzzy

Nvim Compe
Auto completion plugin for nvim that written in Lua.
Stars: ✭ 433 (+293.64%)
Mutual labels:  neovim-plugin
Crease.vim
Easy foldtext customization for [neo]vim.
Stars: ✭ 19 (-82.73%)
Mutual labels:  neovim-plugin
Sniprun
A neovim plugin to run lines/blocs of code (independently of the rest of the file), supporting multiples languages
Stars: ✭ 93 (-15.45%)
Mutual labels:  neovim-plugin
Vim Markdown Composer
An asynchronous markdown preview plugin for Vim and Neovim.
Stars: ✭ 501 (+355.45%)
Mutual labels:  neovim-plugin
Context.vim
Vim plugin that shows the context of the currently visible buffer contents
Stars: ✭ 688 (+525.45%)
Mutual labels:  neovim-plugin
Completor.vim
Async completion framework made ease.
Stars: ✭ 1,158 (+952.73%)
Mutual labels:  neovim-plugin
Packer.nvim
A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies, written in Lua, allows for expressive config
Stars: ✭ 418 (+280%)
Mutual labels:  neovim-plugin
Toast.vim
🍞 Toast! A colorful, medium-contrast color scheme with full Vim and Neovim support and automatic light and dark variants. Easy to read without frying your retinae.
Stars: ✭ 108 (-1.82%)
Mutual labels:  neovim-plugin
Semshi
🌈 Semantic Highlighting for Python in Neovim
Stars: ✭ 758 (+589.09%)
Mutual labels:  neovim-plugin
Todoist.nvim
A todoist extension for neovim
Stars: ✭ 84 (-23.64%)
Mutual labels:  neovim-plugin
Deoplete Jedi
deoplete.nvim source for Python
Stars: ✭ 559 (+408.18%)
Mutual labels:  neovim-plugin
Chadtree
File manager for Neovim. Better than NERDTree.
Stars: ✭ 653 (+493.64%)
Mutual labels:  neovim-plugin
Wishlist
A public catalogue of Lua plugins Neovim users would like to see exist
Stars: ✭ 74 (-32.73%)
Mutual labels:  neovim-plugin
Tmux Complete.vim
Vim plugin for insert mode completion of words in adjacent tmux panes
Stars: ✭ 447 (+306.36%)
Mutual labels:  neovim-plugin
Asyncrun.vim
🚀 Run Async Shell Commands in Vim 8.0 / NeoVim and Output to the Quickfix Window !!
Stars: ✭ 1,332 (+1110.91%)
Mutual labels:  neovim-plugin
Deoplete Go
Asynchronous Go completion for Neovim. deoplete source for Go.
Stars: ✭ 433 (+293.64%)
Mutual labels:  neovim-plugin
Nvim Hlslens
Hlsearch Lens for Neovim
Stars: ✭ 55 (-50%)
Mutual labels:  neovim-plugin
Nvim Lspfuzzy
A Neovim plugin to make the LSP client use FZF
Stars: ✭ 107 (-2.73%)
Mutual labels:  neovim-plugin
Neovim Fuzzy
Fuzzy file finding for neovim
Stars: ✭ 103 (-6.36%)
Mutual labels:  neovim-plugin
Fzf Mru.vim
Vim plugin that is using fzf.vim to display your most recently used files.
Stars: ✭ 79 (-28.18%)
Mutual labels:  neovim-plugin

Freaky fast fuzzy Denite/CtrlP matcher for vim/neovim

This is a matcher plugin for https://github.com/Shougo/denite.nvim[denite.nvim] and https://github.com/ctrlpvim/ctrlp.vim[CtrlP].

Read more at https://blog.rraghur.in/2018/09/27/fruzzy-a-freaky-fast-fuzzy-finder-for-vim/neovim/

Installation

In your .vimrc:

" vim-plug; for other plugin managers, use what's appropriate
" if you don't want to trust a prebuilt binary, skip the 'do' part
" and build the binaries yourself. Instructions are further down
" and place them in the /path/to/plugin/rplugin/python3 folder

Plug 'raghur/fruzzy', {'do': { -> fruzzy#install()}}

" optional - but recommended - see below
let g:fruzzy#usenative = 1

" When there's no input, fruzzy can sort entries based on how similar they are to the current buffer
" For ex: if you're on /path/to/somefile.h, then on opening denite, /path/to/somefile.cpp
" would appear on the top of the list.
" Useful if you're bouncing a lot between similar files.
" To turn off this behavior, set the variable below  to 0

let g:fruzzy#sortonempty = 1 " default value

" tell denite to use this matcher by default for all sources
call denite#custom#source('_', 'matchers', ['matcher/fruzzy'])

" tell CtrlP to use this matcher
let g:ctrlp_match_func = {'match': 'fruzzy#ctrlp#matcher'}
let g:ctrlp_match_current_file = 1 " to include current file in matches

Native modules

Native module gives a 10 - 15x speedup over python - ~40-60μs!. Not that you'd notice it in usual operation (python impl is at 300 - 600μs)

. Run command :call fruzzy#install() if you're not using vim-plug. . restart nvim

Manual installation

. Download the module for your platform. If on mac, rename to fruzzy_mod.so . place in /path/to/fruzzy/rplugin/python3 . Make sure you set the pref to use native module - g:fruzzy#usenative=1 . restart vim/nvim

Troubleshooting/Support

Raise a ticket - please include the following info:

.Get the version . Start vim/nvim . Activate denite/ctrlp as the case may be. . Execute :call fruzzy#version() - this will print one of the following .. version number and branch - all is good .. purepy - you're using the pure python version. .. modnotfound - you requested the native mod with let g:fruzzy#usenative=1 but it could not be loaded .. outdated - native mod was loaded but it's < v0.3. You can update the native mod from the releases. . include output of the above

.Describe the issue . include the list of items . include your query . What it did vs what you expected it to do.

Development

.Build native module . install nim >= 0.19 . dependencies .. nimble install binaryheap .. nimble install nimpy . cd rplugin/python3 . [Windows] nim c --app:lib --out:fruzzy_mod.pyd -d:release -d:removelogger fruzzy_mod . [Linux] nim c --app:lib --out:fruzzy_mod.so -d:release -d:removelogger fruzzy_mod . -d:removelogger - removes all log statements from code. - When removelogger is not defined, only info level logs are emitted - Debug builds (ie: without -d:release flag) also turns on additional debug level logs

.Running tests . cd rplugin . pytest - run tests with python implementation . FUZZY_CMOD=1 pytest - run tests with native module

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].