Emacs как конфигурация IDE для программирования на C?

Я использую emacs в качестве основной IDE для программирования на C. Я изучаю способы настройки emacs для работы больше как IDE, а не как простой текстовый редактор. Конечно, я хочу подсветку синтаксиса и желательно некоторое завершение кода. Я также хочу, чтобы отдельные буферы позволяли командам оболочки и компилировать M-x. Я хочу, чтобы он открывался в эту многобуквенную форму автоматически при посещении исходного файла C, вместо того, чтобы запускать каждый буфер отдельно. Я буду использовать это в основном для разработки Linux/BSD Unix, хотя я также код на Mac OS X (снова Unix) и Windows (64-разрядный Windows 7).

Я изучил стартовый набор Emacs, опубликованный Филом Хагельбергом (technomancy), но он, похоже, очень ориентирован на динамические языки и использует git. Я использую emacs в основном для разработки в C и использования ртути для VC. Я также относительный новичок, делающий конфигурацию emacs относительно сложной для меня.

Теперь я играю с CEDET и пакетом Emacs Code Browser (ECB), который больше похож на то, что я хочу, но все еще не идеален.

Любые предложения по настройке emacs в качестве приветствия IDE программирования C.

Ответ 1

Прошло некоторое время с тех пор, как я сделал C, но вот несколько указателей.

  • Используйте flymake для анализа ошибок на лету. Я использовал его для Python и C, и это действительно потрясающе.
  • Подсветка синтаксиса есть по умолчанию в режиме C.
  • Компиляция M-x предназначена для того, чтобы сделать так, если у вас есть Makefile в вашей настройке, он должен работать нормально (правила defaly flymake также используют это). Правило вроде этого

    check-syntax:

          gcc -Wall -o nul -S ${CHK_SOURCES}
    

    позаботится о flymake. Этот параметр полезен, когда вы редактируете в подкаталогах, но хотите скомпилировать его сверху.

  • etags полезно перепрыгнуть через код. GnuGlobal также кажется популярным.
  • Не могу комментировать ECB, так как я никогда не получал его, чтобы он работал полностью, и когда я это делал, я никогда не считал его полезным. Я использую autocomplete.el для завершения, но не контекстно-зависимый.
  • Нет предложения 6.
  • Встроенная интеграция vc не столь горячая для git, поэтому я использую magit. Там должны быть аналогичные проблемы с mercurial.
  • Здесь есть несколько примечаний по настройке отступа.
  • Вы должны использовать какой режим функции. Это избавило меня от головной боли в прошлом.
  • Значения по умолчанию для GUD довольно приличные, но вы должны потратить некоторое время и ознакомиться с ними, чтобы полностью использовать его.
  • Я сильно использую org-capture, чтобы переместить TBD в мои буферы в режиме org, чтобы я мог отслеживать их как элементы TODO. Это для всех языков. Я также использую org-mode для поддержания дневника разработки для всех моих проектов.

Удачи.

Ответ 2

Прочитайте это отличное руководство о том, как настроить CEDET. Я также советую вам использовать cscope и ЕЦБ рядом с ним. Как уже отмечал Нуфаль, автозаполнение и flymake очень полезны. Я также рекомендую вам режим автопарка.

Ответ 3

я не пробовал Emacs-IDE, но он кажется полезным и может помочь вам