Code Monkey home page Code Monkey logo

ctagsparse's Introduction

ctagsparse.vim: fzf and fast tags parsing!

Pluggin to use [fzf][fzf] to quickly jump to tags using vim!

Rationale

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).

Installation

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' }

How does it works?

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.

Options

fzf_tags_exclude

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' ]

fzf_tags_allow

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' ]

License

MIT, as the original project.

[fzf] : https://github.com/junegunn/fzf [fzf.vim]: https://github.com/junegunn/fzf.vim

ctagsparse's People

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.