Emacs y Python

Recientemente empecé a aprender Emacs . Revisé el tutorial, leí algunos artículos introductorios, hasta ahora todo bien.

Ahora quiero usarlo para el desarrollo de Python. Por lo que entiendo, hay dos modos Python separados para Emacs: python-mode.el, que es parte del proyecto Python; y python.el, que es parte de Emacs 22.

Leí toda la información que pude encontrar, pero la mayoría parece bastante desactualizada y todavía estoy confundido.

Las preguntas:

  1. ¿Cuál es su diferencia?
  2. ¿Qué modo debo instalar y usar?
  3. ¿Hay otros complementos de Emacs que son esenciales para el desarrollo de Python?

Enlaces relevantes:

  • EmacsEditor @ wiki.python.org
  • PythonMode @ emacswiki.org

Si está utilizando GNU Emacs 21 o antes, o XEmacs, use python-mode.el. El GNU Emacs 22 python.el no funcionará en ellos. En GNU Emacs 22, python.el funciona, y se relaciona mejor con el propio análisis y finalización de los símbolos de GNU Emacs, ElDoc, etc. No funcionó muy bien en el pasado, pero hay actualizaciones disponibles que solucionan algunos de los problemas (por ejemplo, en la página de emacswiki que usted vincula), y esperaría que algunos ya estuvieran integrados de forma ascendente. Si yo fuera del tipo Emacs de GNU, usaría python.el hasta que encontrase razones específicas para no hacerlo.

El problema más grande de python-mode.el, por lo que he visto, es que no entiende las cadenas de comillas triples. Los trata como de comillas simples, lo que significa que una comilla simple dentro de una cadena de comillas triples eliminará el resaltado de syntax: pensará que la cadena ha terminado allí. Es posible que también debas cambiar tu auto-mode-alist para activar el modo python para archivos .py; No recuerdo si ese sigue siendo el caso pero mi init.el ha estado configurando auto-mode-alist por muchos años.

En cuanto a otros complementos, nada que yo consideraría “esencial”. El menú de funciones de XEmacs a veces es útil, le brinda una pequeña función / menú de navegador de clase para el archivo actual. No recuerdo si GNU Emacs tiene algo similar. Tengo un primer modo para la edición de texto reStructured, como se usa en algunos proyectos. La vinculación con cualquier VC que use, si es que la tiene, puede serle útil, pero hay soporte integrado para la mayoría de los archivos .el fácilmente descargados para los demás.

Este sitio tiene una descripción de cómo obtener la terminación del código Python en Emacs. Ropemacs es una forma de hacer que Rope funcione en emacs. No he tenido mucha experiencia con ninguno de los dos, pero vale la pena investigarlos.

Dada la cantidad de veces que tengo varios buffers abiertos, todos llamados __init__.py , considero que la biblioteca única es esencial para el desarrollo de Python.

Pyflakes también ayuda a la productividad.