---
name: "htags"
section: "1"
platform: "linux"
package: "global"
version: "6.7-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/htags"
---

# htags(1)

generate a hypertext from a set of source files

## NAME

htags - generate a hypertext from a set of source files

## SYNOPSIS

**htags** \[-aDfFghInosTvw\]\[-d *dbpath*\]\[-m *name*\]\[-t *title*\]\[*dir*\]\

## DESCRIPTION

**Htags** generates a hypertext from a set of source files of C, Yacc, Java, PHP and assembly.

In advance of using this command, you should execute [**gtags**(1)](/gtags/1.md) in the root directory of a source project. Then you can execute **htags** in the same place. **Htags** makes a directory named ´HTML´, and puts a hypertext in it. You can start browsing at ´HTML/index.html´.

Since **htags** generates a static hypertext as long as neither **-D** nor **-f** option is not specified, you can move it anywhere and browse it by any browser without any HTTP server. If you use **-D** or **-f** option, you need to use HTTP server. Though any HTTP server is available, [**htags-server**(1)](/htags-server/1.md) is recommended.

This command has so many options. If you are new to **htags**, it is recommended to use **--suggest** option. With that option, **htags** chooses popular options on your behalf.

## OPTIONS

The following options are available:

- **-a**, **--alphabet**

  Make an alphabetical index suitable for a large project.

- **--auto-completion**\[=*limit*\]

  Enable auto-completion facility for the input form. If *limit* is specified, number of candidates is limited to the value. Please note this function requires javascript language in your browser.

- **-C**, **--directory** *dir*

  Change the directory before doing all the work including parameter analysis.

- **--caution**

  Display a caution message on the top page.

- **--cflow** *cflowfile*

  Add a call tree by [**cflow**(1)](/cflow/1.md). *cflowfile* must be posix format. If you use GNU **cflow**, invoke the command at the project root directory with the **--format=posix** option. This option is deprecated; please use **--call-tree** or **--callee-tree** instead.

- **--call-tree** *callfile*

  Add a call tree by [**cflow**(1)](/cflow/1.md); *callfile* must be posix format. If you use GNU **cflow**, invoke the command at the project root directory with the **--format=posix** option.

- **--callee-tree** *calleefile*

  Add a callee tree by [**cflow**(1)](/cflow/1.md); *calleefile* must be posix format. If you use GNU **cflow**, invoke the command at the project root directory with the **--format=posix** and **--reverse** options.

- **--colorize-warned-line**

  Use color to highlight warned lines.

- **--cvsweb** *url*

  Add a link to cvsweb; *url* is used as the base of URL. When directory ´CVS´ exists in the root directory of the project, the content of ´CVS/Repository´ is used as the relative path from the base.

- **--cvsweb-cvsroot** *cvsroot*

  Specify cvsroot in cvsweb URL.

- **-D**, **--dynamic**

  Generate a tag list dynamically using CGI program. Though this option decreases both the size and generation time of hypertext, you need to start up HTTP server.

- **-d**, **--dbpath** *dbpath*

  Specify the directory in which ´GTAGS´ exists. The default is the current directory.

- **--disable-grep**

  Disable **grep** in the search form (**-f**, **--form**).

- **--disable-idutils**

  Disable **idutils** in the search form (**-f**, **--form**).

- **-F**, **--frame**

  Use frames for the top page.

- **-f**, **--form**

  Add a search form using CGI program. You need to start a HTTP server for it.

- **--fixed-guide**

  Put a fixed guide at the bottom of the screen of the browser.

- **--full-path**

  Use full path name in the file index. By default, use just the last component of a path.

- **-g**, **--gtags**

  Execute [**gtags**(1)](/gtags/1.md) before starting job. The **-v**, **-w** and *dbpath* options are passed to **gtags**.

- **--gtagsconf** *file*

  Set environment variable **GTAGSCONF** to *file*.

- **--gtagslabel** *label*

  Set environment variable **GTAGSLABEL** to *label*.

- **-h**, **--func-header**\[=*position*\]

  Insert a function header for each function. By default, **htags** doesn't generate them. You can choose the position using *position*, which allows one of ´before´, ´right´ or ´after´ (default).

- **--help**

  Print a usage message.

- **--html-header** *file*

  Insert a header record derived from *file* into the HTML header of each file.

- **-I**, **--icon**

  Use icons instead of text for some links.

- **--insert-footer** *file*

  Insert custom footer derived from *file* before \</body\> tag.

- **--insert-header** *file*

  Insert custom header derived from *file* after \<body\> tag.

- **--item-order** *spec*

  Specify the order of the items in the top page. The *spec* is a string consisting of item signs in order. Each sign means as follows: ´c´: caution; ´s´: search form; ´m´: mains; ´d´: definitions; ´f´: files; ´t´: call tree. The default is ´csmdf´.

- **-m**, **--main-func** *name*

  Specify startup function name; the default is ´main´.

- **--map-file**

  Generate file ´MAP´.

- **-n**, **--line-number**\[=*columns*\]

  Print line numbers. By default, don't print line numbers. The default value of *columns* is 4.

- **--no-order-list**

  Numbers are not given in list form.

- **-o**, **--other**

  Pick up not only source files but also other files for the file index.

- **-s**, **--symbol**

  Make anchors not only for definitions and references but also other symbols.

- **--show-position**

  Print the position string per function definition. The string can be interpreted by general editors in UNIX. The default is false.

- **--statistics**

  Print statistics information.

- **--suggest**

  **Htags** chooses popular options on behalf of beginners. It is equivalent to **-aghInosTxv --show-position --fixed-guide** now.

- **--suggest2**

  **Htags** chooses popular options on behalf of beginners. This option enables frame, AJAX and CGI facility in addition to the facilities by the **--suggest** option. It is equivalent to **--suggest  -DfF --auto-completion --tree-view=filetree** now.

- **-T**, **--table-flist**\[=*rows*\]

  Use \<table\> tag to display the file index. You can optionally specify the number of rows; the default is 5.

- **-t**, **--title** *title*

  Title of the hypertext. The default is the last component of the path of the current directory.

- **--tabs** *cols*

  Tab stops. The default is 8.

- **--table-list**

  Use \<table\> tag to display the tag list.

- **--tree-view**\[=*type*\]

  Use treeview for the file index. Please note this function requires javascript language in your browser. Possible values of *type* are as follows: *treeview*, *filetree*, *treeview-red*, *treeview-black*, *treeview-gray*, *treeview-famfamfam*. The default is *treeview*.

- **-v**, **--verbose**

  Verbose mode.

- **--version**

  Show version number.

- **-w**, **--warning**

  Print warning messages.

- *dir*

  The directory in which the result of this command is stored. The default is the current directory.

## EXAMPLES

```
$ gtags -v
$ htags -sanohITvt 'Welcome to XXX source tour!'
$ firefox HTML/index.html
```

$ htags --suggest2 $ htags-server \>& log & $ firefox http://127.0.0.1:8000

## FILES

- ´GTAGS´

  Tag file for definitions.

- ´GRTAGS´

  Tag file for references.

- ´GPATH´

  Tag file for source files.

- ´gtags.conf´, ´$HOME/.globalrc´

  Configuration data for GNU Global. See [**gtags.conf**(5)](/gtags.conf/5.md).

- ´HTML/FILEMAP´

  Mapping file for converting file name into the path of the file.

- ´HTML/GTAGSROOT´

  If this file exists, CGI program ´global.cgi´ sets environment variable **GTAGSROOT** to the contents of it. If you move directory ´HTML´ from the original place, please make this file.

- ´HTML/.htaccess´

  Local configuration file for Apache. This file is generated when the **-f** or **-D** options are specified.

- ´HTML/index.html´

  Start-up file.

- ´HTML/MAP´

  Mapping file for converting tag name into the path of tag list.

- ´HTML/style.css´

  Style sheet file.

- ´/usr/local/share/gtags/style.css.tmpl´

  The template of the style sheet file (´HTML/style.css´).

## ENVIRONMENT

The following environment variables affect the execution of **htags**:

- **GTAGSCACHE**

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

- **GTAGSCONF**

  Configuration file.

- **GTAGSLABEL**

  Configuration label. The default is ´default´.

- **HTAGS\_OPTIONS**

  The value of this variable is inserted in the head of arguments.

- **TMPDIR**

  The location used to stored temporary files. The default is ´/tmp´.

- **GTAGSFORCECPP**

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

## CONFIGURATION

The following configuration variables affect the execution of **htags**:

- datadir(string)

  Shared data directory. The default is ´/usr/local/share´ but you can change the value using configure script. **Htags** looks up template files in the ´gtags´ directory in this data directory.

- include\_file\_suffixes(comma separated list)

  Suffixes of include files. The default is:\
   ´h,hh,hxx,hpp,H,inc.php´.

- langmap(comma separated list)

  Language mapping. Each comma-separated map consists of the language name, a colon, and a list of file extensions. Default mapping is:\
   ´c:.c.h,yacc:.y,asm:.s.S,java:.java,cpp:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php:.php.php3.phtml´.

## DIAGNOSTICS

**Htags** exits with a non-0 value if an error occurred, 0 otherwise.

## SEE ALSO

[**htags-server**(1)](/htags-server/1.md), [**global**(1)](/global/1.md), [**gtags**(1)](/gtags/1.md), [**gtags.conf**(5)](/gtags.conf/5.md).

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

## BUG

Generated hypertext is VERY LARGE. In advance, check the space of your disk.

PHP support is far from complete.

The **-f** and **-D** options generate CGI programs. If you open the hypertext to the public, please recognize security dangers.

Htags does not support plug-in parser.

## AUTHOR

Shigio YAMAGUCHI, Hideki IWAMOTO and others.

## HISTORY

The **htags** command appeared in FreeBSD 2.2.2.
