All Projects → jsfaint → Gen_tags.vim

jsfaint / Gen_tags.vim

Licence: mit
Async plugin for vim and neovim to ease the use of ctags/gtags

Projects that are alternatives of or similar to Gen tags.vim

Neotags.nvim
Tag highlight in neovim
Stars: ✭ 124 (-56.94%)
Mutual labels:  ctags, async, neovim, neovim-plugin
Sniprun
A neovim plugin to run lines/blocs of code (independently of the rest of the file), supporting multiples languages
Stars: ✭ 93 (-67.71%)
Mutual labels:  plugin, neovim, neovim-plugin
cmp-under-comparator
nvim-cmp comparator function for completion items that start with one or more underlines
Stars: ✭ 77 (-73.26%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Acid.nvim
Asynchronous Clojure Interactive Development
Stars: ✭ 147 (-48.96%)
Mutual labels:  async, neovim, neovim-plugin
Vim Vsnip
Snippet plugin for vim/nvim that supports LSP/VSCode's snippet format.
Stars: ✭ 224 (-22.22%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Vim Ghost
Vim/Nvim client for GhostText - Edit browser text areas in Vim/Neovim
Stars: ✭ 245 (-14.93%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Vim Grepper
👾 Helps you win at grep.
Stars: ✭ 1,030 (+257.64%)
Mutual labels:  async, neovim, vim-plugin
Neotex
latex live preview - plugin for neovim and vim 8
Stars: ✭ 170 (-40.97%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Neomake
Asynchronous linting and make framework for Neovim/Vim
Stars: ✭ 2,512 (+772.22%)
Mutual labels:  async, neovim, vim-plugin
Vista.vim
🌵 Viewer & Finder for LSP symbols and tags
Stars: ✭ 1,218 (+322.92%)
Mutual labels:  ctags, neovim, vim-plugin
format.nvim
Neovim lua plugin to format the current buffer with external executables
Stars: ✭ 189 (-34.37%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Indent Blankline.nvim
Indent guides for Neovim
Stars: ✭ 203 (-29.51%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Visual Split.vim
Vim plugin to control splits with visual selections or text objects
Stars: ✭ 190 (-34.03%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Vim Monokai Tasty
VIM Colour scheme
Stars: ✭ 279 (-3.12%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Animate.vim
A Vim Window Animation Library
Stars: ✭ 173 (-39.93%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Iris.vim
📫 Simple mail client for Vim.
Stars: ✭ 148 (-48.61%)
Mutual labels:  plugin, neovim, vim-plugin
Targets.vim
Vim plugin that provides additional text objects
Stars: ✭ 2,114 (+634.03%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Vim Dadbod Completion
Database autocompletion powered by https://github.com/tpope/vim-dadbod
Stars: ✭ 163 (-43.4%)
Mutual labels:  neovim, vim-plugin, neovim-plugin
Vim Signify
➕ Show a diff using Vim its sign column.
Stars: ✭ 2,390 (+729.86%)
Mutual labels:  async, neovim, vim-plugin
Iron.nvim
Interactive Repl Over Neovim
Stars: ✭ 265 (-7.99%)
Mutual labels:  async, neovim, neovim-plugin

gen_tags.vim

Join the chat at https://gitter.im/gen_tags-vim/Lobby

Async plugin for Vim/NeoVim to ease the use of ctags/gtags. It is used for generate and maintain tags for you with multiple platform support, tested on Windows/Linux/macOS.

gen_tags.vim will detect SCM(git, hg, svn) root and use it as the project root path. But you can also create a folder named as .root to specify a directory as the project root path.

Generate/Update ctags and gtags will run in background.

Difference between ctags and gtags

GNU global(aka gtags) is more powerful than ctags, which support definition, reference, calling, called, include, string and etc, but ctags only support definition.

As we can use GNU global why did I still support ctags in this plugin? That's because GNU global only support 6 languages (C, C++, Yacc, Java, PHP4 and assembly) natively. ctags can support more languages(41 showed on the website).

Actually global can support more languages with Pygments plugin parser, for more details please refer PLUGIN_HOWTO.pygments in global document.

Installation

  • dein.vim

    Add call dein#add('jsfaint/gen_tags.vim') to your vimrc Then launch vim/nvim and run :call dein#install()

  • vim-plug

    Add Plug 'jsfaint/gen_tags.vim' to your vimrc  Then launch vim/nvim and run :PlugInstall

  • Traditional method

    Unzip the zip file under your .vim(*unix) or vimfiles(windows) directory.

Ctags support

Commands For Ctags

  • :GenCtags

    Generate ctags database

  • :EditExt

    Edit an extend configuration file for this project, use for add third-party library ctags database The extend database will be generate automatically.

    e.g.: For libpcap under e:\src\libpcap-1.3.0 add the following content to ext.conf

    e:/src/libpcap-1.3.0
    
  • :ClearCtags

    :ClearCtags      Remove tags files.
    :ClearCtags!     Remove all files, include the db dir
    

Gtags support

GTAGS support the third-party library by set an environment variable GTAGSLIBPATH But you can take a more straightforward way to do the same thing, by create a symbol link of the library

  • Linux/macOS

    ln -s /usr/include/ .
    
  • Windows

    mklink /J include C:\TDM-GCC-32\include
    

Commands For Gtags

  • :GenGTAGS

    Generate GTAGS

  • :ClearGTAGS

    :ClearGTAGS     Remove GTAGS files
    :ClearGTAGS!    Remove all files, include the db dir
    

Key Mapping

ctrl+] is the default mapping support by Vim for definition

The following mapping is set for gtags when g:gen_tags#gtags_default_map is 1, which uses the cscope interface .

Ctrl+\ c    Find functions calling this function
Ctrl+\ d    Find functions called by this function
Ctrl+\ e    Find this egrep pattern
Ctrl+\ f    Find this file
Ctrl+\ g    Find this definition
Ctrl+\ i    Find files #including this file
Ctrl+\ s    Find this C symbol
Ctrl+\ t    Find this text string

Detail Usage

For more details about the usage, please refer to the help document in vim by :help gen_tags.vim


Thanks for reading :) If you like this plugin, please star it on github!

And one more thing, bug reports and pull-requests are greatly appreciated :)

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