Ⅰ. 插件描述
Only for archival - see raghur/fruzzy for something that actually works wellⅡ. 基本信息
|
Ⅲ. 安装方法
使用Vundle管理器安装
在你的.vimrc下添加:Plugin 'raghur/fuzzy-denite'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall
对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。
使用NeoBundle管理器安装
在你的.vimrc下添加:NeoBundle 'raghur/fuzzy-denite'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall
使用VimPlug管理器安装
在你的.vimrc下添加:Plug 'raghur/fuzzy-denite'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall
使用Pathogen管理器安装
在终端中运行以下命令:cd ~/.vim/bundle
git clone https://github.com/raghur/fuzzy-denite
Ⅳ. 文档说明
== Fuzzy Denite
Go Fuzzy find server and denite.nvim custom matcher client.
=== Installation
Then in your .vimrc
:
[source,vim]
Plug 'Shougo/denite.nvim'
Plug 'raghur/fuzzy-denite', {'do': ':FuzzyDeniteInstall'}
call denite#custom#source('_', 'matchers', ['matcher/gofuzzy'])
=== Why
I currently use nixprime/cpsm
and while it's great, it's a pain to set up on
windows and Linux since the python extension has to be compiled separately.
This isn't a problem on Linux - but on Windows - :O :O.
I wanted to try my hand at writing something that works reasonably well and
is comparatively easy to set up.
=== How
A special purpose, stateful server on localhost that listens for connections and
responds with matches.
=== Speed
So you might be thinking that out of process, network api call vs C extension? So did I.
But, a few tweaks and I can't really tell the difference that much
. The list of things to be filtered is sent at best once. A hash is calculated on the client
and the list to be filtered is sent only if the server doesn't already have it.
. GRPC for comms - much faster than pickling or HTTP. It makes installation of the plugin a
little more involved since pip
has to be run on installation but the it's worth the trouble
for the speed up and no lag experience
. I use NeoMRU a lot - it has a limit of 1000 entries. Turning this down to 100 makes is more
reasonable.
=== Goals
. Fast - no pause, no hiccups
. Relevant matching - esp filenames/paths - right now, this isn't great, but a lot easier to improve
. Easy installation - esp no pip dependencies on the python client.
=== TODOS
. Provide platform binaries so that users don't need GO SDK
. Fix first run 'pause'
. Explore using FZF's fuzzy matching code.