Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I'll try to add some explanations to 1.</p> <p><strong>What is it?</strong></p> <ul> <li>Etags is a command to generate 'TAGS' file which is the tag file for Emacs. You can use the file with etags.el which is part of emacs package.</li> <li>Ctags is a command to generate 'tags' file which is the tag file for vi. Now Exuberant Ctags can generate 'TAGS' file by the -e option, and support 41 programming languages.</li> <li>Cscope is an all-in-one source code browsing tool for C language. It has own fine CUI (character user interface) and tag databases (cscope.in.out, cscope.out, cscope.po.out). You can use cscope from Emacs using xcscope.el which is part of cscope package.</li> <li>GNU GLOBAL is a source code tagging system. Though it is similar to above tools, it differs from them at the point of that it is dependent from any editor, and it has no user interface except for command line. Gtags is a command to generate tag files for GLOBAL (GTAGS, GRTAGS, GPATH). You can use GLOBAL from emacs using gtags.el which is part of GLOBAL package. In addition to this, there are many elisp libraries for it (xgtags.el, ggtags.el, anything-gtags.el, helm-gtags.el, etc).</li> </ul> <p><strong>Comparison</strong></p> <ul> <li>Ctags and etags treat only definitions. Cscope and GNU GLOBAL treat not only definitions but also references.</li> <li>Ctags and etags use a flat text tag file. Cscope and GNU GLOBAL use key-value tag databases.</li> <li>Cscope and GNU GLOBAL have a grep like search engine and incremental updating facility of tag files.</li> </ul> <p><strong>Combination</strong></p> <p>You can combine Exuberant Ctags's rich language support and GNU GLOBAL's database facility by using ctags as a plug-in parser of GLOBAL.</p> <p>Try the followings: (requires GLOBAL-6.0, Exuberant Ctags-5.5 or later respectively)</p> <p>Building GNU GLOBAL:</p> <pre><code>$ ./configure --with-exuberant-ctags=/usr/local/bin/ctags $ sudo make install </code></pre> <p>Usage:</p> <pre><code>$ export GTAGSCONF=/usr/local/share/gtags/gtags.conf $ export GTAGSLABEL=ctags $ gtags # invokes Exuberant Ctags internally $ emacs -f gtags-mode # load gtags.el </code></pre> <p>(However, you cannot treat references by this method, because ctags don't treat references.)</p> <p>You can also use cscope as a client of GNU GLOBAL. GLOBAL package includes a command named 'gtags-cscope' which is a port of cscope, that is, it is cscope itself except that it use GLOBAL as a search engine instead of cscope's one.</p> <pre><code>$ gtags-cscope # this is GLOBAL version of cscope </code></pre> <p>With the combinations, you can use cscope for 41 languages.</p> <p>Good luck!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload