Dos modos de Python

10

He estado tratando de configurar Emacs para usar el modo Python adecuado. Con este fin, he leído algunos tutoriales. Lo más importante este . El tutorial usa el python-modepaquete. Sin embargo, cuando lo instalo a través del administrador de paquetes ( M-x package-install RET python-mode RET) no puedo usar los accesos directos que están disponibles para ese paquete.

Abrí un archivo de Python para probar algunos accesos directos como C-c |, que deberían evaluar la expresión seleccionada. Sin embargo, para mi sorpresa, estos no funcionaron, así que decidí buscar otros tutoriales sobre el tema. Sin embargo, en mi línea de modo sí veo Python, por lo que hay algunos python-modehabilitados.

En el wiki de emacs encontré el siguiente fragmento para agregar a mi init.elarchivo:

 (autoload 'python-mode "python-mode" "Python Mode." t)
 (add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
 (add-to-list 'interpreter-mode-alist '("python" . python-mode))

Cuando agrego esto, el python-moderealmente funciona y los accesos directos mencionados también funcionan.

No entiendo correctamente qué hace esto más que ejecutarlo manualmente M-x python-modeen un búfer de archivos de Python.

Cuando python-modeeliminé cada rastro de mi carpeta .emacs y abrí un archivo de Python, noté que todavía tengo un python-mode. ¿Entonces supongo que hay dos python-modes?

Creo que quiero el python-modede https://launchpad.net/python-mode . Parece que está presente en el repositorio de paquetes, pero no estoy seguro de cómo eliminar el otro modo Python.

¿Podría alguien dar más detalles por favor?

Christophe De Troyer
fuente
1
Si quieres usar Ipython, ein es un excelente paquete. Le da el equivalente del cuaderno Ipython en Emacs. Demos aquí . También hay demostraciones antiguas del repositorio original ahora sin mantenimiento.
Tu Do
Ese es un texto completo para una pregunta bastante simple. ;-) Sería bueno recortarlo un poco.
Malabarba
Estoy de acuerdo. Estaba siendo minucioso ya que otros sitios de SE me han pensado. Lo recortaré un poco lo antes posible.
Christophe De Troyer

Respuestas:

10

Bueno, sí, hay dos modos de Python: el que se envía con emacs es python.ely el otro es el python-mode.elque es este: https://launchpad.net/python-mode

Su tutorial ha estado haciendo referencia al posterior.

Su python-modefragmento de configuración hace lo siguiente:

;; by default, the function 'python-mode is associated with
;; the package python.el. The following changes that to python-mode.el:
(autoload 'python-mode "python-mode" "Python Mode." t)

;; open py files with python-mode
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))

;; sets python interpreter mode to be python-mode
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
Adobe
fuente
Entonces, ¿elimino python.el o tengo que combinarlos? ¿O hay un nombre específico para el último modo de Python? Quiero que mi init.elsea ​​portátil, por lo que la eliminación python.elpodría no ser una opción.
Christophe De Troyer
Simplemente instale python-mode.el y configúrelo con el fragmento que publicó. (o lea su LÉAME)
Adobe
Entiendo lo que hace el comando, en combinación con esta respuesta: superuser.com/questions/108233/… Gracias por dar más detalles.
Christophe De Troyer
7

Como mantenedor de python-mode.el y además de responder por @Adobe: python-mode.el no descarga comandos de python.el, ambos están disponibles. Debido al nombre de python-mode-map, que es utilizado por ambos y no se puede cambiar sin romper muchas cosas, las combinaciones de teclas y el menú se entregan desde el último cargado.

C-c |llama py-execute-regiony funciona muy bien aquí. Quizás python.el se cargó después y la unión desapareció. Llamar al comando a través de Mx podría ser una opción que. En caso de problemas, considere un informe de error en https://bugs.launchpad.net/python-mode

Andreas Röhler
fuente