Universal CTAGS is a [[GPL]] licensed code indexer written in [[3. Reference/Software/Programming Languages/C|C]]. - [Website](https://ctags.io/) - [GitHub](https://github.com/universal-ctags/ctags) - [AlternativeTo](https://alternativeto.net/software/universal-ctags/) > `ctags` generates an index (or tag) file of language objects found in source files for programming languages. This index makes it easy for text editors and other tools to locate the indexed items. # Notability A very handy, simple, and classic tool that generates data that can be used by other programs such as [[Vim]] and [[EMACS]] to navigate codebases. # Philosophy # OS Support - Linux - BSD - [Haiku](https://depot.haiku-os.org/#!/pkg/ctags/haikuports/haikuports_x86_64/5/8/-/-/5/x86_64?bcguid=bc130-PDIP) - Mac - Windows # Features # Tips ## Simple Usage ```sh ctags -R . ``` ## Jump to Tags in Vim `ctrl+]` # Resources ## Language Helpers - [[Elixir]] - https://github.com/mmorearty/elixir-ctags - No longer required for [[V]], support is now built in ## Notes - [[CTAGS Highlighting - Al's Stuff]] - [[Using ctags in vim -Smarticus]] - [[Get ctags in vim to go to definition, not declaration - Stack Overflow]] - [[Using bash completion with ctags and Vim - Vim Tips Wiki]] # References - [Language Definition Reference](https://gedit-text-editor.org/developer-docs/libgedit-gtksourceview-300/lang-reference.html) for GTKSourceView ## Alternatives - [CScout](https://github.com/dspinellis/cscout) - [[GNU Global]] - [Language Server Protocol](https://en.wikipedia.org/wiki/Language_Server_Protocol?useskin=vector) - https://clangd.llvm.org/