2009-10-21 3 views
13

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

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

ответ

16

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

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

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

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

+0

2samix: Возможно, вы найдете полезную мою статью о CEDET - http://xtalk.msk.su/~ott /en/writings/emacs-devenv/EmacsCedet.html –

3

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

+0

Не могли бы вы немного рассказать о том, почему вы предпочитаете Gnu Global над etags? Фактически, это первый раз, когда я слышу о Gnu Global и ничего не знаю об этом. Интересно, как это сравнивается с Etags. С веб-сайта Gnu Global я знаю, что он поддерживает меньшее количество языков, но меня больше всего интересуют C и C++, поэтому это не prblem. Спасибо. – user193272

+1

гораздо более быстрый поиск, gtags также используются в CEDET и позволяют находить вызовы для определенных функций и т. Д. –

+1

Я согласен с Alex, gtags намного быстрее, чем etags и, как правило, более точны. Я нашел несколько проблем, когда он неправильно обрабатывал код, но по большей части он работает хорошо. – MikeT

Смежные вопросы