Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ctags(1)			 User Commands			      ctags(1)

NAME
       ctags - create a	tags file for use with ex and vi

SYNOPSIS
       /usr/bin/ctags [-aBFtuvwx] [-f tagsfile]	file...

       /usr/xpg4/bin/ctags [-aBFuvwx] [-f tagsfile] file...

DESCRIPTION
       The  ctags  utility  makes  a tags file for ex(1) from the specified C,
       C++, Pascal, FORTRAN, yacc(1), and  lex(1) sources. A tags  file	 gives
       the  locations  of  specified objects (in this case functions and type-
       defs) in	a group	of files.  Each	line of	the tags file contains the ob-
       ject  name,  the	file in	which it is defined, and an address specifica-
       tion for	the object definition. Functions are searched with a  pattern,
       typedefs	with a line number. Specifiers are given in separate fields on
       the line, separated by <SPACE> or  <TAB>	 characters.  Using  the  tags
       file, ex	can quickly find these objects'	definitions.

       Normally,   ctags  places  the  tag descriptions	in a file called tags;
       this may	be overridden with the -f option.

       Files with names	ending in  .c or .h are	assumed	to be either C or  C++
       source files and	are searched for C/C++	routine	and macro definitions.
       Files with names	ending in .cc, .C, or  .cxx, are  assumed  to  be  C++
       source  files.  Files  with  names ending in .y are assumed to be  yacc
       source files. Files with	names ending in	.l  are	 assumed  to  be   lex
       files.	Others are first examined to see if they contain any Pascal or
       FORTRAN routine definitions; if not, they are processed	again  looking
       for C  definitions.

       The tag main is treated specially in C or C++ programs.	The tag	formed
       is created by prepending	M to file, with	a trailing  .c ,  .cc  .C,  or
       .cxx  removed,  if  any,	and leading path name components also removed.
       This makes use of ctags practical in directories	 with  more  than  one
       program.

OPTIONS
       The  precedence of the options that pertain to printing is -x, -v, then
       the remaining options. The following options are	supported:

       -a	       Appends output to an existing tags file.

       -B	       Uses backward searching patterns	(?...?).

       -f tagsfile     Places the tag descriptions in a	file  called  tagsfile
		       instead of tags.

       -F	       Uses forward searching patterns (/.../) (default).

       -t	       Creates	tags for typedefs. /usr/xpg4/bin/ctags creates
		       tags for	typedefs by default.

       -u	       Updates the specified files in tags, that is, all  ref-
		       erences to them are deleted, and	the new	values are ap-
		       pended to the file. Beware: this	option is  implemented
		       in  a  way that is rather slow; it is usually faster to
		       simply rebuild the tags file.

       -v	       Produces	on the standard	output an  index  listing  the
		       function	 name, file name, and page number (assuming 64
		       line pages). Since the output will be sorted into lexi-
		       cographic  order,  it  may be desired to	run the	output
		       through sort -f.

       -w	       Suppresses warning diagnostics.

       -x	       Produces	a list of object names,	the  line  number  and
		       file name on which each is defined, as well as the text
		       of that line and	prints this on	the  standard  output.
		       This  is	 a simple index	which can be printed out as an
		       off-line	readable function index.

OPERANDS
       The following file operands are supported:

       file.c	       Files with basenames ending  with  the  .c  suffix  are
		       treated as C-language source code.

       file.h	       Files  with  basenames  ending  with  the .h suffix are
		       treated as C-language source code.

       file.f	       Files with basenames ending  with  the  .f  suffix  are
		       treated as FORTRAN-language source code.

USAGE
       The  -v option is mainly	used with vgrind which will be part of the op-
       tional BSD Compatibility	Package.

EXAMPLES
       Example 1: Producing entries in alphabetical order

       Using ctags with	the -v option produces entries in an order  which  may
       not  always be appropriate for vgrind. To produce results in alphabeti-
       cal order, you may want to run the output through sort -f.

       example%	ctags -v filename.c filename.h | sort -f > index
       example%	vgrind -x index

       Example 2: Building a tags file

       To build	a tags file for	C sources in a directory hierarchy  rooted  at
       sourcedir, first	create an empty	tags file, and then run	 find(1)

       example%	cd sourcedir  ;	rm -f tags ; touch tags
       example%	find . \( -name	SCCS -prune -name \\
	      '*.c' -o -name '*.h' \) -exec ctags -u {}	\;

       Notice that spaces must be entered exactly as shown.

ENVIRONMENT VARIABLES
       See  environ(5) for descriptions	of the following environment variables
       that affect the execution of ctags: LANG, LC_ALL, LC_COLLATE, LC_CTYPE,
       LC_MESSAGES, and	NLSPATH.

EXIT STATUS
       The following exit values are returned:

       0	       Successful completion.

       >0	       An error	occurred.

FILES
       tags	       output tags file

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

   /usr/bin/ctags
       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWtoo			   |
       +-----------------------------+-----------------------------+

   /usr/xpg4/bin/ctags
       +-----------------------------+-----------------------------+
       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       +-----------------------------+-----------------------------+
       |Availability		     |SUNWxcu4			   |
       +-----------------------------+-----------------------------+
       |Interface Stability	     |Standard			   |
       +-----------------------------+-----------------------------+

SEE ALSO
       ex(1),  lex(1),	vgrind(1),  vi(1), yacc(1), attributes(5), environ(5),
       standards(5)

NOTES
       Recognition of functions, subroutines, and procedures for  FORTRAN  and
       Pascal  is  done	in a very simpleminded way. No attempt is made to deal
       with block structure; if	you have two Pascal  procedures	 in  different
       blocks with the same name, you lose.

       The  method  of	deciding  whether  to look for C or Pascal and FORTRAN
       functions is a hack.

       The ctags utility does not know about #ifdefs.

       The ctags utility should	know about Pascal types. Relies	on  the	 input
       being  well  formed  to detect typedefs.	Use of -tx shows only the last
       line of typedefs.

SunOS 5.10			  18 Mar 1997			      ctags(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | OPERANDS | USAGE | EXAMPLES | ENVIRONMENT VARIABLES | EXIT STATUS | FILES | ATTRIBUTES | SEE ALSO | NOTES

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ctags&sektion=1&manpath=SunOS+5.10>

home | help