Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
146 lines (103 sloc) 4.88 KB


This Sublime Text 2 Package provides support for working with tags generated by Exuberant CTags

The ctags command is searched for on PATH. It works by doing a binary search of an mmap()'d `.tags` file so it will work efficiently with very large ( 50MB+ etc ) tags files if needed.


If anyone is having trouble getting the CTags -R flag to work on OSX, you are probably using the stock CTags installation.

To get a proper copy of ctags, use one of the following options:

  • Make sure that Sublime Text is using the right version of CTags: Ensure that /.MacOSX/environment.plist has /usr/local/bin in the PATH string before /usr/bin (the standard location for CTags). Here's a sample environment.plist that should work:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "">
<plist version="1.0">
  • If /usr/local/bin wasn't in your PATH already, you have to log out and log back in for the environment variables to be read in again.


To get a proper copy of ctags, use one of the following options:

  • In a terminal session: sudo apt-get install ctags


  • No dependencies!


If you are a git user, the best way to install the package and keep up to date is to clone the repo directly into your /Packages directory in the Sublime Text 2 application settings area.

Using Git

Go to your Sublime Text 2 `Packages` directory and clone the repository using the command below:

$ git clone CTags

Download Manually

  • Download the files using the .zip download option
  • Unzip the files (and rename the folder to CTags if needed)
  • Copy the folder to your Sublime Text 2 Packages directory


See this forum thread for a bit of background.


This uses `.tags` files created in `ctags -R -f .tags` recursive mode.

The commands will try and find a `tags` file in the same directory as the current view, walking up directories until it finds one. If it can't find one it will offer to build some ( in the directory of the current view ) (TODO: doesn't ask as missing api from S1)

If a symbol can't be found in a tags file it will search in alternative locations.

If you create a file `tags_search_paths` in the same folder as your `tags` file, listing alternative locations (full absolute paths, one per line) it will search those files also.



Other Settings

There's a CTags.sublime-settings file:

    "debug"           :  false,
    "ctags_command"   :  "ctags -R -f .tags",
    "filters"         :  {
        "source.python": {"type":"^i$"}
    "definition_filters": {
        "source.php": {"type":"^v$"}
    "definition_current_first": false,
    "show_context_menus": false,
    "extra_tag_paths" :  [ [["source.python", "windows"], "C:\\Python27\\Lib\\tags"]],
    "extra_tag_files" : [".gemtags"]

`filters` will allow you to set scope specific filters against a field of the tag. In the excerpt above, imports tags like "from a import b" are filtered.


`extra_tag_paths` is a list of extra places to look for keyed by (selector, platform)

`extra_tag_files` is a list of extra files relative to the original .tags file

Note the platform (`windows` in the example above) is tested against `sublime.platform()` so any values that function returns are valid.

The rest of the options are fairly self explanatory.


If there are any problems or you have a suggestion open an issue and we will receive an email notification.

Thanks :)

Commands Listing

Command Key Binding Alt Binding Mouse Binding
rebuild_ctags ctrl+t ctrl+r
navigate_to_definition ctrl+t ctrl+t ctrl+alt+] ctrl+alt+left_click
jump_back ctrl+t ctrl+b ctrl+alt+[
jump_back to_last_modification ctrl+t ctrl+m
show_symbols alt+s
show_symbols multi alt+shift+s