Подтвердить что ты не робот

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

Я собираюсь сделать некоторое редактирование 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 для завершения имени).

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

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

4b9b3361

Ответ 1

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

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 в вашем веб-браузере (M-x php-search-documentation или C-c C-f). Вы можете комбинировать его с Emacs-W3M, чтобы получить соответствующую страницу руководства, не покидая Emacs.

Ответ 2

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

Ответ 3

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

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