packages icon



 GLOBAL(1)                       GNU Project                       GLOBAL(1)
                                  Jun 2013



 NAME
      global - print locations of given symbols

 SYNOPSIS
      global [-adGilnqrstTvx][-e] pattern
      global -c[diIoOPrsT] prefix
      global -f[adlnqrstvx][-L file-list] files
      global -g[aGilnoOqtvVx][-L file-list][-e] pattern [files]
      global -I[ailnqtvx][-e] pattern
      global -P[aGilnoOqtvVx][-e] pattern
      global -p[qrv]
      global -u[qv]

 DESCRIPTION
      Global finds locations of given symbols in C, C++, Yacc, Java, PHP and
      Assembly source files, and prints the path name, line number and line
      image of the locations.  Global can locate not only definitions but
      also references and other symbols.

      Global can treat a source tree, that is, a directory that has sub-
      directories and source files, as a project.  In advance of using this
      command, you must execute gtags(1) at the root directory of the
      project which you want to investigate to make tag files.  Then you can
      use global command anywhere in the project.  You need not specify
      where the tag file is.  Instead, global locates it by itself.

      You can specify a regular expression for pattern.  Global understands
      two different versions of regular expression syntax: basic and
      extended (default).

 COMMANDS
      The following commands are available:

      <no command> pattern
           Print tags which match to pattern.  By default, print definition
           tags.

      -c, --completion [prefix]
           Print symbols which start with prefix.  If prefix is not given,
           print all symbols.

      -f, --file files
           Print all tags in the files.  This command implies the -x option.

      -g, --grep pattern [files]
           Print all lines which match to the pattern.  If files are given,
           this command searches in those files.

      --help
           Print a usage message.




                                    - 1 -      Formatted:  December 27, 2024






 GLOBAL(1)                       GNU Project                       GLOBAL(1)
                                  Jun 2013



      -I, --idutils pattern
           Print all lines which match to pattern.  This function uses
           idutils(1) as a search engine.  To use this command, you need to
           install idutils(1) in your system and execute gtags(1) with the
           -I option.

      -P, --path [pattern]
           Print path names which match to pattern.  If no pattern is given,
           print all paths in the project.

      -p, --print-dbpath
           Print location of 'GTAGS'.

      -u, --update
           Update tag files incrementally.  This command internally invokes
           gtags(1).  You can execute this command anywhere in the project,
           differing from gtags(1).

      --version
           Show version number.

 OPTIONS
      The following options are available:

      -a, --absolute
           Print absolute path names. By default, print relative path names.

      -d, --definition
           Print locations of definitions.

      -e, --regexp pattern
           Use pattern as the pattern; useful to protect patterns starting
           with '-'.

      --encode-path chars
           Convert path characters in chars into a '%' symbol, followed by
           the two-digit hexadecimal representation of the character.  A
           blank will be converted to '%20'.

      --from-here context
           Decide tag type by context, which must be 'lineno:path'.  If this
           option is specified then -s and -r are ignored.  Regular
           expression is not allowed for pattern.  This option assumes use
           in conversational environments such as editors and IDEs.

      -G, --basic-regexp
           Interpret pattern as a basic regular expression.  The default is
           an extended regular expression.

      -i, --ignore-case
           Ignore case distinctions in the pattern.



                                    - 2 -      Formatted:  December 27, 2024






 GLOBAL(1)                       GNU Project                       GLOBAL(1)
                                  Jun 2013



      -L, --file-list file
           Obtain files from file in addition to the arguments.  The
           argument file can be set to '-' to accept a list of files from
           the standard input. File names must be separated by newline.

      -l, --local
           Print only tags which exist under the current directory.

      --literal
           Execute literal search instead of regular expression search.
           This option is only valid when the -g command is specified.

      --match-part part
           Specify how path name completion should match, where part is one
           of: 'first', 'last' or 'all' (default).  This option is valid
           only with the -c command in conjunction with -P.

      -n, --nofilter
           Suppress sort filter and path conversion filter.

      -O, --only-other
           Treat only text files other than source code, like 'README'.
           This option is valid only with the -g or -P command.  This option
           overrides the -o option.

      -o, --other
           Treat not only source files but also text files other than source
           code, like 'README'.  This option is valid only with the -g or -P
           command.

      --path-style format
           Print path names using format, which may be one of: 'relative',
           'absolute', 'shorter', 'abslib' or 'through'.  The --path-style
           option is given more priority than the -a option.

      --print0
           Print each record followed by a null character instead of a
           newline.

      -q, --quiet
           Quiet mode.

      -r, --reference, --rootdir
           Print reference tags.  Reference means the reference to a symbol
           which has definitions.  With the -p option, print the root
           directory of the project.

      --result format
           Print out using format, which may be one of: 'path' (deault),
           'ctags', 'ctags-x', 'grep' or 'cscope'.  The --result=ctags and
           --result=ctags-x options are equivalent to the -t and -x options



                                    - 3 -      Formatted:  December 27, 2024






 GLOBAL(1)                       GNU Project                       GLOBAL(1)
                                  Jun 2013



           respectively.  The --result option is given more priority than
           the -t and -x options.

      --single-update file
           Update tag files using gtags(1) with the --single-update option.
           It is considered that file was added or updated, and there is no
           change in other files.  This option implies the -u option.

      -s, --symbol
           Print other symbol tags.  Other symbol means the reference to a
           symbol which has no definition.

      -T, --through
           Go through all the tag files listed in GTAGSLIBPATH.  By default,
           stop searching when tag is found.  This option is ignored when
           either -s, -r or -l option is specified.

      -t, --tags
           Use standard ctags format.

      -V, --invert-match
           Invert the sense of matching, to select non-matching lines.  This
           option is valid only with the -g or -P commands.

      -v, --verbose
           Verbose mode.

      -x, --cxref
           Use standard ctags cxref (with -x) format.

 EXAMPLES
      $ ls -F
      Makefile      src/    lib/
      $ gtags
      $ ls G*
      GPATH   GRTAGS  GTAGS
      $ global main
      src/main.c
      $ (cd src; global main)
      main.c
      $ global -x main
      main              10 src/main.c  main (argc, argv) {
      $ global -f src/main.c
      main              10 src/main.c  main (argc, argv) {
      func1            55 src/main.c  func1() {
      func2            72 src/main.c  func2() {
      func3           120 src/main.c  func3() {
      $ global -x '^[sg]et'
      set_num           20 lib/util.c  set_num(values) {
      get_num           30 lib/util.c  get_num() {
      $ global -rx set_num



                                    - 4 -      Formatted:  December 27, 2024






 GLOBAL(1)                       GNU Project                       GLOBAL(1)
                                  Jun 2013



      set_num          113 src/op.c            set_num(32);
      set_num          225 src/opop.c               if (set_num(0) > 0) {
      $ global strlen
      $ (cd /usr/src/sys; gtags)
      $ export GTAGSLIBPATH=/usr/src/sys
      $ global -a strlen
      /usr/src/sys/libkern/strlen.c
      $ (cd /usr/src/lib; gtags)
      $ GTAGSLIBPATH=/usr/src/lib:/usr/src/sys
      $ global -a strlen
      /usr/src/lib/libc/string/strlen.c

 FILES
      'GTAGS'
           Tag file for definitions.

      'GRTAGS'
           Tag file for references.

      'GPATH'
           Tag file for source files.

      'GTAGSROOT'
           If environment variable GTAGSROOT is not set and file 'GTAGSROOT'
           exists in the same directory as 'GTAGS' then global sets
           GTAGSROOT to the contents of the file.

      '$HOME/.globalrc', '/etc/gtags.conf', '[sysconfdir]/gtags.conf'
           Configuration files.

 ENVIRONMENT
      The following environment variables affect the execution of global:

      GTAGSBLANKENCODE
           If this variable is set, the --encode-path=" <TAB>" option is
           specified.

      GTAGSCACHE
           The size of the B-tree cache. The default is 50000000 (bytes).

      GTAGSCONF
           Configuration file. The default is '$HOME/.globalrc'.

      GTAGSDBPATH
           The directory in which the tag files exist.  This value is
           ignored when GTAGSROOT is not defined.

      GTAGSFORCECPP
           If this variable is set, each file whose suffix is '.h' is
           treated as a C++ source file.




                                    - 5 -      Formatted:  December 27, 2024






 GLOBAL(1)                       GNU Project                       GLOBAL(1)
                                  Jun 2013



      GTAGSLABEL
           Configuration label. The default is default.

      GTAGSLIBPATH
           If this variable is set, it is used as the path to search for
           library functions. If the given symbol is not found in the
           project, global also searches in these paths.  Since only 'GTAGS'
           is targeted in the retrieval, this variable is ignored when -r or
           -s is specified.

      GTAGSLOGGING
           If this variable is set, '$GTAGSLOGGING' is used as the path name
           of a log file. There is no default value.

      GTAGSROOT
           The root directory of the project.

      GTAGSTHROUGH
           If this variable is set, the -T option is specified.

      MAKEOBJDIR
           If this variable is set, '$MAKEOBJDIR' is used as the name of
           BSD-style objdir. The default is 'obj'.

      MAKEOBJDIRPREFIX
           If this variable is set, '$MAKEOBJDIRPREFIX' is used as the
           prefix of BSD-style objdir. The default is '/usr/obj'.

 CONFIGURATION
      The following configuration variables affect the execution of global:

      icase_path (boolean)
           Ignore case distinctions in pattern.

 DIAGNOSTICS
      Global exits with a non-0 value if an error occurred, 0 otherwise.

 SEE ALSO
      gtags(1), htags(1), less(1).

      GNU GLOBAL source code tag system
      (http://www.gnu.org/software/global/).

 AUTHOR
      Shigio YAMAGUCHI, Hideki IWAMOTO and others.

 HISTORY
      The global command appeared in FreeBSD 2.2.2.






                                    - 6 -      Formatted:  December 27, 2024