Pluggin to use [fzf][fzf] to quickly jump to tags using vim!
This project is inspired of [fzf.vim][fzf.vim]. As good as fzf.vim
repository's functions are, they are too slow when searching tags from a big tag file. Peoples of bad faith would blame the Perl script working underneath
but we are no such people. However, we still need an efficient way to format our
tags for FZF.
Originally, this is designed for me to search in Linux kernel tags, which contains approximately 5 millions tags (the tag file is almost 1GB).
As for [fzf.vim][fzf.vim], the [main fzf repository][fzf] is required. Also
you need to build ctagsparse
to make it available to the plugin, the following
will do everything needed:
Plug 'naccyde/quick-fzf.vim', { 'do': 'make' }
The path to the tag files must be stored in vim's tags
variable, so ctagsparse can find it. Then, call :CTagsParse
to interactively search for a tag, or :CTagsParseHere
to search for the tag under the cursor!
fzf is used to display a list of tags from which you can interactively select the one you want
The tag files used must be generated by ctags
or another tools creating ctags
compliant tag files.
Exclude one or more path from the returned tags. Any tag found in a file which path is excluded won't be diplayed. This can speed up the parsing process if needed.
Excluded paths can be relative or absolute. Relative path are relative to vim's current working directory.
let g:fzf_tags_exclude = [ '/home/john/linux/drivers', 'net' ]
By default, all paths are allowed. But you might need to exclude a path while allowed specific directories inside this excluded path, that's what this option is for.
Allowed paths can be relative or absolute. Relative path are relative to vim's current working directory.
let g:fzf_tags_allow = [ 'drivers/staging/axis_fifo' ]
MIT, as the original project.
[fzf] : https://github.com/junegunn/fzf [fzf.vim]: https://github.com/junegunn/fzf.vim