ctags — утилита, собирающая информацию об именах и позициях переменных, функций и процедур, встречающихся в исходном коде компьютерных программ. При этом генерируется тег-файл (), формат которого поддерживается большим количеством текстовых редакторов.

Основные возможности Обработка исходных текстов, написанных более чем на 40 языках программирования Вывод информации об обнаруженных объектах в удобном для чтения человеком формате Генерирование тегов в формате, используемом редактором Emacs

Поддержка текстовыми редакторами В настоящее время большое количество редакторов (особенно используемых в системах UNIX) поддерживают теги. Среди них:

vi и его аналоги (vim, vile, nvi) Emacs Gedit KDevelop Sublime Text Atom

Вариации Существует несколько вариантов реализации программы ctags:

Etags Редактор Emacs поставляется с двумя утилитами класса ctags: etags и ctags. Обе созданы из единого исходного текста. Вариант Etags создает файлы с таблицами тегов в формате для Emacs, тогда как команда ctags создает подобные таблицы в формате для редактора vi. Имеются некоторые различия в опциях командной строки.

Exuberant Ctags Exuberant Ctags, вариант, созданный Darren Hiebert, изначально поставлялся в составе пакета редактора Vim, но стал отдельным проектом начиная с версии Vim 6. Данный вариант также имеет поддержку редактора Emacs.

Exuberant Ctags позволяет работать с исходными кодами более чем на 40 языках программирования.

Существует ответвление (форк) проекта под названием Universal Ctags.

Hasktags Приложение Hasktags создает ctags-совместимые базы данных для программ на языке Haskell. Также может создавать etags файлы для редактора Emacs.

См. также GNU GLOBAL Cscope OpenGrok

Примечания

Литература Linda Lamb, Arnold Robbins, Arthur Robbins. vi Clones Feature Summary // Learning the vi editor. O'Reilly, 1998. — С. 140—141. ISBN 978-1-56592-426-0 Chris Anley, Jack Koziol, John Heasman, Felix Lindner, Gerardo Richarte. The Shellcoder’s Handbook. John Wiley and Sons, 2007. — С. 483—484. ISBN 978-0-470-08023-8

Категория:Инструменты для навигации в исходном коде Категория:Программное обеспечение для Linux Категория:Утилиты Unix