Emacs и Python

Недавно я начал изучать Emacs. Я просмотрел учебник, прочитал несколько вводных статей, пока все хорошо.

Теперь я хочу использовать его для разработки на Python. Насколько я понимаю, для Emacs существует два отдельных режима Python: python-mode.el, который является частью проекта Python; и python.el, который является частью Emacs 22.

Я прочитал всю информацию, которую смог найти, но большая ее часть кажется устаревшей, и я все еще в замешательстве.

Вопросы:

  1. В чем их отличие?
  2. Какой режим мне установить и использовать?
  3. Существуют ли другие надстройки Emacs, которые необходимы для разработки Python?

Соответствующие ссылки:

Я использовал Emacs в течение 2 лет, но чтение и запись Python в Emacs по-прежнему для меня кошмар. Сложная конфигурация веревки, булавы, пимака ... сводит меня с ума. Так что лично я рекомендую Eclipse + pydev.

wilbeibi 11.03.2013 07:59
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
34
1
10 683
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Если вы используете 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-mode-alist.

Что касается других аддонов, я бы не стал считать их «существенными». Функциональное меню XEmacs иногда бывает полезным, оно дает вам небольшое меню браузера функций / классов для текущего файла. Я не помню, есть ли в GNU Emacs что-нибудь подобное. У меня есть первый режим для редактирования reStructuredText, который используется в некоторых проектах. Привязка к любой используемой вами VC, если таковая имеется, может быть вам полезна, но есть встроенная поддержка большинства и легко загружаемых файлов .el для остальных.

Как пользователь GNU emacs 22 (в Windows). Я поддерживаю это. python-mode.el на самом деле ничего вам не покупает (хотя он работает). Единственная реальная причина использовать python-mode.el может заключаться в том, чтобы заставить ipython работать в emacs, однако, к сожалению, это не работает в Windows. В unix YMMV ....

Peter Hart 01.10.2008 18:18

Этот сайт содержит описание того, как получить автозавершение кода Python в Emacs. Ropemacs - это способ заставить Rope работать в emacs. У меня не было большого опыта работы с ними, но они заслуживают внимания.

Я пользуюсь верёвочными машинами (правда, не самой современной), их довольно легко установить и использовать по инструкции.

Anton Nazarov 27.11.2008 19:57

Я только что попробовал ropemacs и могу согласиться с другими комментаторами :) rope + ropemode + ropemacs == круто. Хорошая запись в блоге о разработке на Python с помощью emacs, кстати: enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide по-прежнему является хорошей ссылкой, даже если она немного устарела

tr9sh 19.12.2010 02:43

Ссылки Ropeemacs мертвы

alper 28.02.2021 22:04

Учитывая, сколько раз у меня было несколько открытых буферов, все они назывались __init__.py, я считаю, что библиотека унифицировать необходима для разработки на Python.

Pyflakes также помогает продуктивности.

Другие вопросы по теме