Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
GetNetWise: You
e One Click Away

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 62 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here




       etags [-aCDGImRVh] [-i file] [-l language]
       [-o tagfile] [-r regexp] [--parse-stdin=file]
       [--append] [--no-defines] [--no-globals] [--include=file]
       [--ignore-indentation] [--language=language] [--members]
       [--output=tagfile] [--regex=regexp] [--no-regex] [--help]
       [--version] file ...

       gnuctags [-aCdgImRVh] [-BtTuvwx] [-l language]
       [-o tagfile] [-r regexp] [--parse-stdin=file]
       [--append] [--backward-search] [--cxref] [--defines]
       [--forward-search] [--globals] [--ignore-indentation]
       [--language=language] [--members] [--output=tagfile]
       [--regex=regexp] [--typedefs] [--typedefs-and-c++]
       [--update] [--no-warn] [--help] [--version] file ...


       The etags program is used to create a tag table file, in a
       format  understood  by  emacs(1);  the gnuctags program is
       used to create a similar table in a format  understood  by
       vi(1).  Both forms of the program understand the syntax of
       C, Objective C, C++, Java, Fortran,  Ada,  Cobol,  Erlang,
       HTML,  LaTeX,  Emacs  Lisp/Common Lisp, makefiles, Pascal,
       Perl, PHP, Postscript, Python, Prolog, Scheme and most as­
       sembler-like  syntaxes.   Both forms read the files speci­
       fied on the command line, and write a tag table (defaults:
       TAGS  for etags, tags for gnuctags) in the current working
       directory.  Files specified with relative file names  will
       be  recorded  in the tag table with file names relative to
       the directory where the tag table resides.   Files  speci­
       fied  with absolute file names will be recorded with abso­
       lute file names.  Files generated from a source file--like
       a  C  file  generated  from  a  source  Cweb file--will be
       recorded with the name of the source file.   The  programs
       recognize  the language used in an input file based on its
       file name and contents.  The --language switch can be used
       to  force  parsing  of the file names following the switch
       according to the given language, overriding guesses  based
       on filename extensions.


       Some  options  make  sense only for the vi style tag files
       produced by gnuctags; etags does not recognize them.   The
       programs  accept unambiguous abbreviations for long option

       -a, --append
              Append to existing tag file.   (For  vi-format  tag
              files, see also --update.)

       -B, --backward-search
              Tag files written in the format expected by vi con­
              fault behavior for etags.

       -D, --no-defines
              Do not create tag entries for C  preprocessor  con­
              stant  definitions  and  enum  constants.  This may
              make the tags file  much  smaller  if  many  header
              files are tagged.  This is the default behavior for

       -g, --globals
              Create tag entries for global variables in C,  C++,
              Objective  C,  Java, and Perl.  This is the default
              behavior for etags.

       -G, --no-globals
              Do not tag global variables.   Typically  this  re­
              duces the file size by one fourth.  This is the de­
              fault behavior for gnuctags.

       -i file, --include=file
              Include a note in the  tag  file  indicating  that,
              when  searching  for a tag, one should also consult
              the tags file file after checking the current file.
              This options is only accepted by etags.

       -I, --ignore-indentation
              Don't  rely  on  indentation as much as we normally
              do.  Currently, this means not  to  assume  that  a
              closing  brace  in  the  first  column is the final
              brace of a function or structure  definition  in  C
              and C++.

       -l language, --language=language
              Parse  the  following  files according to the given
              language.  More than one such options may be inter­
              mixed  with filenames.  Use --help to get a list of
              the available languages and their default  filename
              extensions.  The `auto' language can be used to re­
              store automatic detection of language based on  the
              file name.  The `none' language may be used to dis­
              able  language  parsing  altogether;  only   regexp
              matching  is done in this case (see the --regex op­

       -m, --members
              Create tag entries for variables that  are  members
              of  structure-like  constructs in C++, Objective C,

       -M, --no-members
              Do not tag member variables.  This is  the  default

       -r regexp, --regex=regexp

              Make tags based on regexp matching  for  the  files
              following this option, in addition to the tags made
              with the standard parsing based on language. May be
              freely intermixed with filenames and the -R option.
              The regexps are cumulative, i.e. each  such  option
              will  add to the previous ones.  The regexps are of
              one of the forms:

              where tagregexp is  used  to  match  the  tag.   It
              should  not match useless characters.  If the match
              is such that more characters than  needed  are  un­
              avoidably matched by tagregexp, it may be useful to
              add a nameregexp, to narrow  down  the  tag  scope.
              gnuctags ignores regexps without a nameregexp.  The
              syntax of regexps is the same  as  in  emacs.   The
              following character escape sequences are supported:
              \a, \b, \d, \e, \f, \n, \r, \t, \v,  which  respec­
              tively stand for the ASCII characters BEL, BS, DEL,
              ESC, FF, NL, CR, TAB, VT.
              The modifiers are a sequence of 0 or  more  charac­
              ters  among  i,  which  means  to  ignore case when
              matching; m, which means that the tagregexp will be
              matched  against  the  whole file contents at once,
              rather than line by line, and the matching sequence
              can  match  multiple  lines; and s, which implies m
              and means  that  the  dot  character  in  tagregexp
              matches the newline char as well.
              The  separator,  which is / in the examples, can be
              any character different from space, tab, braces and
              @.  If the separator character is needed inside the
              regular expression, it must be quoted by  preceding
              it with \.
              The  optional  {language} prefix means that the tag
              should be created only for files of  language  lan­
              guage, and ignored otherwise.  This is particularly
              useful when storing many predefined  regexps  in  a
              In its second form, regexfile is the name of a file
              that contains a number of arguments to the --regex=
              option, one per line.  Lines beginning with a space
              or tab are assumed to be comments, and ignored.

              Here are some examples.  All the regexps are quoted
              to protect them from shell interpretation.

              Tag the DEFVAR macros in the emacs source files:
              --regex='/[ \t]*DEFVAR_[A-Z_ \t(]+"\([^"]+\)"'

              recognised languages.  This feature is particularly
              useful  inside  regex files.  A regex file contains
              one regex per line.  Empty lines, and  those  lines
              beginning with space or tab are ignored.  Lines be­
              ginning with @ are references to regex files  whose
              name  follows  the @ sign.  Other lines are consid­
              ered  regular  expressions  like  those   following
              For example, the command
              etags --regex=@regex.file *.c
              reads the regexes contained in the file regex.file.

       -R, --no-regex
              Don't do any more regexp matching on the  following
              files.  May be freely intermixed with filenames and
              the --regex option.

       -t, --typedefs
              Record typedefs in C code as tags.  Since  this  is
              the  default  behavior  of etags, only gnuctags ac­
              cepts this option.

       -T, --typedefs-and-c++
              Generate tag entries for  typedefs,  struct,  enum,
              and  union  tags,  and C++ member functions.  Since
              this is the default behavior of etags,  only  gnuc­
              tags accepts this option.

       -u, --update
              Update  tag  entries for files specified on command
              line, leaving tag entries for other files in place.
              Currently,  this is implemented by deleting the ex­
              isting entries for the given files and then rewrit­
              ing  the  new  entries at the end of the tags file.
              It is often faster to simply rebuild the entire tag
              file  than to use this.  Only gnuctags accepts this

       -v, --vgrind
              Instead of generating a tag file, write  index  (in
              vgrind  format)  to standard output.  Only gnuctags
              accepts this option.

       -w, --no-warn
              Suppress warning messages about duplicate  entries.
              The  etags program does not check for duplicate en­
              tries, so this option is not allowed with it.

       -x, --cxref
              Instead of generating a tag  file,  write  a  cross
              reference  (in  cxref  format)  to standard output.
              Only gnuctags accepts this option.


       Copyright (c) 1999, 2001 Free Software Foundation, Inc.

       Permission  is  granted  to  make  and distribute verbatim
       copies of this document provided the copyright notice  and
       this permission notice are preserved on all copies.

       Permission is granted to copy and distribute modified ver­
       sions of this document under the conditions  for  verbatim
       copying,  provided  that the entire resulting derived work
       is distributed under the  terms  of  a  permission  notice
       identical to this one.

       Permission  is granted to copy and distribute translations
       of this document into another language,  under  the  above
       conditions for modified versions, except that this permis­
       sion notice may be stated in a translation approved by the
       Free Software Foundation.

GNU Tools                   23nov2001                    etags(1)
Show your Support for the Linux Tutorial

Purchase one of the products from our new online shop. For each product you purchase, the Linux Tutorial gets a portion of the proceeds to help keep us going.



Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
You can get all the latest Site and Linux news by checking out our news page.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.08 Seconds