Install latest/stable of universal-ctags

Ubuntu 16.04 or later?

Make sure snap support is enabled in your Desktop store.

Install using the command line

sudo snap install universal-ctags

Don't have snapd? Get set up for snaps.

Channel Version Published

Universal-Ctags packaged as an installable snap for Linux

Ctags parses source code to produce an index file, mapping the names of symbols, like functions, classes, and variables, to the locations where they are defined. This index is used by editors like Vim and Emacs to enable features like 'go to definition'.

Universal Ctags (https://ctags.io/) is an active fork of the venerable Exuberant Ctags (http://ctags.sourceforge.net/, last release 2009), that adds additional features, including support for more languages.

This is the snap package of universal-ctags (https://snapcraft.io/universal-ctags), which installs the application binary on any Linux distribution.


When installed, this snap provides executable universal-ctags, and alias ctags.

ctags [options] [target files or directories]

eg. ctags -R . (-R or --recurse to recursively search directories), or ctags -R --languages=python --exclude=.git src/.

This snap does not install the man pages. See the online universal-ctags man pages at http://docs.ctags.io/en/latest/man/ctags.1.html for options and usage details.


Compared to universal-ctags installed using apt, or compiled from source, this snap has some limitations, introduced by snap security restrictions.

  1. Source files cannot be scanned if they are:

    • Outside the user's $HOME directory, or
    • In a top-level hidden directory in $HOME, eg. ~/.src.

    Lower-level hidden directories, eg. ~/proj/.src, can be scanned.

  2. Ctags usually reads config from the following directories:

    • The user's ~/.ctags.d/ is read as expected.
    • The current directory's ctags.d is not read by default, but the '--options' arg can be used to read from it.
    • The current directory's .ctags.d cannot be read.
  3. Configuration in other places, specified using --options or --options-maybe, will not be read if they are outside the user's HOME, or in a top-level hidden directory.

  4. Tag files written using '-f' options or similar may not be outside the user's $HOME directory, nor in a top-level hidden file or directory. You may be able to work around this by using -f - and redirecting stdout to the required location.

  5. The universal-ctags man pages are not installed. But you can see them online at http://docs.ctags.io/en/latest/man/ctags.1.html

  6. The 'etags' executable alias (which defaults to Emacs style tags files) is not installed. Use ctags --output-format=etags or ctags -e instead.

If these or other issues cause you problems, please file an issue at https://github.com/universal-ctags/ctags-snap/issues.

Details for universal-ctags

  • GPL-2.0+

Last updated
  • 23 February 2022 - latest/stable
  • Yesterday - latest/edge



Share this snap

Generate an embeddable card to be shared on external websites.

Install universal-ctags on your Linux distribution

Choose your Linux distribution to get detailed installation instructions. If yours is not shown, get more details on the installing snapd documentation.

Where people are using universal-ctags

Users by distribution (log)

Ubuntu 20.04
Ubuntu 22.04
Ubuntu 18.04
Ubuntu 23.10
Ubuntu 16.04
pop 22.04
Ubuntu 23.04
CentOS 7
Debian 11
Debian 12
Debian sid
Debian 10
Fedora 39
Ubuntu 21.10
Ubuntu 22.10
Ubuntu 24.04
Fedora 38

Is there a problem with universal-ctags? Report this app