Что такое хорошая настройка для редактирования PHP в Emacs? - PullRequest
39 голосов
/ 27 мая 2009

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

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

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

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

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

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

Ответы [ 3 ]

23 голосов
/ 28 мая 2009

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

ETags

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

1011 * Debugging * Flymake - режим проверки синтаксиса на лету. Он также поддерживает PHP. Он сразу намекает на синтаксические ошибки при вводе. Версия Flymake, поставляемая с Emacs 23, содержит поддержку PHP. Если у вас есть предыдущая версия, проверьте сообщение Саши Чуа о Emacs и PHP: проверка синтаксиса на лету с помощью Flymake . Еще один полезный пакет - Geben , который позволяет интерактивно отлаживать ваши сценарии. Для PHP вы можете использовать XDebug. Подробное руководство о том, как это сделать, см. В Отладка php в emacs с помощью geben . . Поиск документации

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

5 голосов
/ 17 сентября 2014

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

3 голосов
/ 15 августа 2010

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

Кстати, если вы используете порт Windows GNU Global со сборкой Windows Emacs, используйте версию DJGPP ("DOS"). Сборка MinGW ("Win32"), похоже, имеет проблему с именами путей.

...