GNU Project - Global / Savannah - Global

Top page

What's new





Known bugs


Mailing lists


GNU Global source code tagging system

[image of the globe]

Copyright (c) 2000-2023 Tama Communications Corporation

Linux source code GNU Global is a source code tagging system that works the same way across diverse environments, such as Emacs editor, Vi editor, Less viewer, Bash shell, various web browsers, etc.

You can locate various objects, such as functions, macros, structs, classes, in your source files and move there easily. It is useful for hacking on a large project which contains many sub-directories, many #ifdef and many main() functions. It is similar to ctags or etags, but is different from them in the following two points:

  • independence of any editor
  • capability to treat definitions and references
It runs in UNIX (POSIX) compatible operating system, like GNU and BSD.

GNU Global is part of the GNU project, and is free software. You can freely copy, modify and redistribute this program under GNU GPL.

GNU Global has the following features:

  • supports 5 languages by built-in parser. (definition and reference)
    C, Yacc, Java, PHP4 and assembly.
  • supports 25 languages by Pygments + Universal Ctags plug-in parser. (definition and reference)
    Awk, Dos batch, COBOL, C, C++, C#, Erlang, Fortran, Java, JavaScript, Lisp, Lua, Pascal, Perl, PHP, Python, Ruby, Matlab, OCaml, Scheme, Tcl, TeX, Verilog, Vhdl and Vim.
    To use the parser, please see the 'plugin-factory/PLUGIN_HOWTO.pygments' file in the package.
  • works the same way across diverse environments like follows:
    • Shell command line
    • Bash shell
    • Vi editor (Nvi, Elvis, vim)
    • Less viewer
    • Emacs editor (Emacs, Mule, Xemacs)
    • Web browser (See UNIX kernel source tour!.)
    • Doxygen documentation system
  • finds locations of specified symbol quickly.
  • locate not only definitions but also references.
  • allows duplicate tags.
  • locate paths which matches to the specified pattern.
  • hierarchical search by default.
  • searches not only in a source project but also in library projects.
  • generates a completion list for completing input method.
  • supports various output formats.
  • allows customizing of the set of candidate files to be tagged.
  • understands POSIX 1003.2 regular expression.
  • supports idutils as an external search engine.
  • tag files are independent of machine architecture.
  • supports incremental updating of tag files.
  • plug-in parser is available to treat new languages.
  • supports customizing with gtags.conf.
  • generates a hypertext of source code.
  • supports compact format to save disk space.
  • supports client/server environment (TRAMP ready).
  • ignores binary files, dot files and specified files.
  • includes cscope-compatible program (gtags-cscope).
  • includes grep-like command (-g command).
  • deals with loop of symbolic links well.
Please also see 'Comparison with Similar Tools' in the OpenGrok project site for comparison with other tools.

If you have a plan to make a yet another editor with tag facility, you can use Global for it.

May the Global be under you like the globe!

[Top of page]
Copyright (c) 2000-2023 Tama Communications Corporation
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2
[image of the globe]