Что такое хорошая настройка для редактирования PHP в Emacs?

Я собираюсь сделать некоторое редактирование PHP для своей работы этим летом, и я ищу эффективную настройку Emacs для ее редактирования. Я уже сильно инвестировал в Emacs, поэтому переключение на другой редактор не стоит.

Прямо сейчас у меня есть режим nXhtml , который предоставляет режим PHP с подсветкой синтаксиса (в дикой природе есть как минимум три разных), а также MuMaMo для редактирования PHP, встроенного в HTML. Я просто начал использовать Auto-Complete и Anything для программирования и общего материала Emacs, соответственно.

То, что я действительно ищу, – это эффективный способ заставить Emacs действительно понять проект, помимо просто подчеркивания. Etags выглядит как хороший вариант, но похоже, что процесс создания новых тегов является довольно сложным и ручным (или, по крайней мере, невидимым). Хорошая вещь в Etags заключается в том, что они хорошо интегрируются с Anything и Auto-Complete. Другими потенциальными вариантами являются гаджеты (хотя я не решаюсь устанавливать файлы не-elisp, просто для сложности), vtags или Semantic , с которыми я раньше сталкивался и кажется сложным для настройки, плюс это не выглядит он поддерживает PHP.

Другим вариантом является Imenu , но он работает только для текущего буфера, и я хотел бы иметь возможность перейти к определениям функций в других файлах (желательно с помощью Anything для завершения имени).

Проекты, над которыми я буду работать, не такие большие (всего около 30 000 строк), поэтому накладные расходы Etags, вероятно, не будут такими большими, но я бы предпочел не использовать его, если есть лучшее решение.

Итак, какова ваша предпочтительная система редактирования PHP?

    В дополнение к функциям, с которыми вы уже знакомы, я предлагаю вам следующее.

    ETags

    Я не использую ETags, но есть вопрос уже о SO. Как программно создавать / обновлять файл TAGS с помощью emacs . Однако ответа не было, но это может быть хорошей отправной точкой для получения идеи.

    отладка

    Flymake – это способ проверки синтаксиса на лету. Он также поддерживает PHP. Он сразу же указывает на синтаксические ошибки при вводе. Версия Flymake, поставляемая с Emacs 23, содержит поддержку PHP. Если у вас есть предыдущая версия, проверьте сообщение Sacha Chua на Emacs и PHP: проверка синтаксиса «на лету» с помощью Flymake .

    Другим полезным пакетом является Geben, который позволяет вам отлаживать ваши скрипты в интерактивном режиме. Для PHP вы можете использовать XDebug. Существует подробный учебник о том, как это сделать, см. Debug php в emacs с geben .

    Поиск документации

    Режим PHP имеет приятную функцию для поиска определения функции в руководстве PHP в вашем веб-браузере ( Mx php-search-documentation или Cc Cf ). Вы можете комбинировать его с Emacs-W3M, чтобы получить соответствующую страницу руководства, не покидая Emacs.

    web-model.el (доступно на web-mode.org ) обрабатывает довольно хорошо php-блоки, встроенные в html-документ. В этом основном режиме также будут выделены части js и css.

    В качестве альтернативы ETags рассмотрим GNU Global, также известный как «GTags». Global намного умнее в поиске таблиц тегов и довольно быстро обновляется. У Emacs-fu есть хорошая статья об этом на лету .

    BTW, если вы используете порт Windows GNU Global с сборкой Windows Emacs, используйте версию DJGPP («DOS»). У сборки MinGW («Win32») возникает проблема с именами путей.