Jonathan Hartley (tartley) Publisher
  • Jonathan Hartley (tartley) Publisher

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

Parse source code to build an index of defined symbols.

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 feaures like 'go to definition'.

Universal Ctags is a fork of the venerable Exuberant Ctags, that adds additional features, including support for more languages.


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

In order to read config from files under ~/.ctags.d/, you need to give the snap permission. This should be automated imminently, but for now:

 sudo snap connect universal-ctags:dot-ctags

See ctags online useage documentation at http://docs.ctags.io/en/latest/man/ctags.1.html


Compared to universal-ctags installed using apt, or compiled from source, this snap currently 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, eg. ~/.src.

    However, it can scan source in lower-level hidden directories, eg. ~/proj/.src.

  2. Config is usually read from the following directories:

    • User's ~/.ctags.d/ is read as expected. (But see the note in 'Usage' about giving the snap permission.)
    • Current directory's ctags.d is not read by default, but the '--options' arg can be used to read from it.
    • 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 hidden file or directory at top level in the $HOME directory. (You can work around this by using -f - and redirecting stdout to the required location.)

  5. The universal-ctags 'man' pages are not installed.

  6. The 'etags' executable alias (which defaults to Emacs style tags files) is not installed.

If these or other issues cause you problems, let me know at https://github.com/universal-ctags/ctags-snap/issues

Details for universal-ctags

Last updated
15 November 2021

Share this snap

Generate an embeddable card to be shared on external websites.

Related blog posts

Where people are using universal-ctags

Users by distribution (log)

Ubuntu 18.04
Ubuntu 20.04
Ubuntu 16.04
Ubuntu 21.10
Ubuntu 21.04
CentOS 7
Fedora 35
Ubuntu 20.10
pop 21.04
Linux Mint 19.3
Debian 10
Arch Linux
Fedora 34
Linux Mint 20.2
Debian 11
Linux Mint 19.1
KDE Neon 20.04

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.

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