Вопрос
Я недавно начал учиться Эмакс.Я прошел руководство, прочитал несколько вводных статей, пока все хорошо.
Теперь я хочу использовать его для разработки на Python.Насколько я понимаю, для Emacs существует два отдельных режима Python:python-mode.el, который является частью проекта Python;и python.el, который является частью Emacs 22.
Я прочитал всю информацию, которую смог найти, но большая ее часть кажется устаревшей, и я все еще в замешательстве.
Вопросы:
- В чем их разница?
- Какой режим мне следует установить и использовать?
- Существуют ли другие дополнения Emacs, необходимые для разработки на Python?
Соответствующие ссылки:
- Редактор Emacs @ wiki.python.org
- PythonMode @ emacswiki.org
Решение
Если вы используете GNU Emacs 21 или более раннюю версию или XEmacs, используйте python-mode.el.GNU Emacs 22 python.el на них не работает.В GNU Emacs 22 python.el работает и лучше связан с собственным синтаксическим анализом и завершением символов GNU Emacs, ElDoc и т. д.Я сам использую XEmacs, поэтому не использую его, и я слышал, как люди жаловались, что в прошлом он работал не очень хорошо, но доступны обновления, исправляющие некоторые проблемы (например, на странице emacswiki). вы ссылаетесь), и вы надеетесь, что некоторые из них уже интегрированы в исходную версию.Если бы я был сторонником GNU Emacs, я бы использовал python.el до тех пор, пока не нашел бы конкретные причины не делать этого.
Самая большая проблема python-mode.el, насколько я видел, заключается в том, что он не совсем понимает строки в тройных кавычках.Он рассматривает их как заключенные в одинарные кавычки, то есть одинарная кавычка внутри строки в тройных кавычках отключит подсветку синтаксиса:он подумает, что строка на этом закончилась.Вам также может потребоваться изменить список автоматических режимов, чтобы включить режим Python для файлов .py;Я не помню, так ли это до сих пор, но мой init.el уже много лет устанавливает auto-modealist.
Что касается других дополнений, я бы не назвал ничего «существенного».Функциональное меню XEmacs иногда бывает полезно: оно дает вам небольшое меню браузера функций/классов для текущего файла.Я не помню, было ли в GNU Emacs что-нибудь подобное.У меня есть первый режим для редактирования reStructuredText, который используется в некоторых проектах.Привязка к любому виртуальному компьютеру, который вы используете, если таковой имеется, может быть вам полезна, но для большинства имеется встроенная поддержка, а для остальных есть легко загружаемые файлы .el.
Другие советы
Учитывая количество раз, когда у меня есть несколько открытых буферов, все они называются __init__.py
, я считаю унифицировать библиотека, необходимая для разработки Python.
Pyflakes также способствует повышению производительности.