Я собираюсь сделать некоторое редактирование 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, но есть вопрос уже о 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») возникает проблема с именами путей.