Emacs, etags и использование emacs в качестве среды IDE

Мои обычные инструменты - это Emacs с g++ в системе Linux для реализации моих алгоритмов исследования. В течение последних нескольких лет я использовал emacs довольно простым способом. Я открываю файлы C или С++, редактирую их с помощью схемы выделения синтаксиса по своему выбору и компилирую и делаю другие вещи из emacs (или, возможно, из терминала), включая использование gdb в emacs для отладки. Я знаю о etags и ctags и немного играл с etags и emacs, но, похоже, не нашел этого "сладкого пятна" с инструментами.

Мне было интересно, что делают другие, чтобы настроить emacs только так, чтобы он хорошо сочетался с etags и другими инструментами? Какие ухищрения нужно делать с emacs, чтобы сделать его лучше IDE?

Ответы

Ответ 1

Для получения информации о тегах я также рекомендую GNU Global. CScope также может многое сделать. В обоих случаях они предоставляют способ найти местоположение тега по имени, а также использование определенного тега.

Для "IDE Stuff" это больше, чем просто система тегов. Для этого я рекомендую CEDET набор инструментов для Emacs. Это обеспечивает систему управления проектами (EDE), которая может создавать Makefile для компиляции вашего кода для вас. Также существует часть анализа и анализа кода (Semantic), которая обеспечивает интеллектуальное завершение. Существует система генерации шаблонов/кодов (SRecode), которая может преобразовывать теги из семантического кода в код. Существует даже редактор UML-диаграмм (COGRE), который может генерировать код из диаграммы классов, которую вы рисуете в Emacs.

Большинство пользователей, использующих CEDET, используют только парсерные и интеллектуальные системы завершения, возможно, в сочетании с ECB, и это нормально использовать только подмножество CEDET.

Для хорошей меры CEDET также будет интегрироваться с глобальными базами данных GNU, чтобы вы могли ссылаться на использование символов в дополнение к местоположениям тегов вместе с обычным глобальным интерфейсом GNU для Emacs.

Ответ 2

Недавно мы начали использовать GNU Global в качестве замены etags, и я был очень впечатлен. Мы также используем idutils, который обеспечивает быстрый способ поиска любых строк в исходном коде.