¿Hay alguna manera de usar python en lugar de elisp para extender emacs?


11

Estoy interesado en usar otros idiomas además de elisp para escribir extensiones de emacs, ¿es esto posible? Si Python no es compatible, ¿qué idiomas son?

Respuestas:


10

Como dijo Tephra, Pymacs es un paquete diseñado para esto.

Es una interfaz entre Python y Emacs Lisp. El proyecto no es muy activo, pero por lo que entiendo es completamente funcional con la última versión de Emacs. Algunos paquetes de Python lo usan (por ejemplo, Ropemacs ), por lo que es probable que cualquier cambio en Emacs que lo rompa sea reparado.

El enlace de GitHub a la documentación en línea parece estar muerto, pero aún puede encontrarlo en Wayback Machine . La documentación de Wayback solo está disponible para la versión 0.23: la versión actual es 0.25. Sin embargo, los cambios son bastante menores. El código fuente de Ropemacs es un buen lugar para buscar ejemplos, al igual que los otros proyectos implementados con Pymacs.

El problema con Pymacs es que elimina mucho de lo que hace que Elisp sea útil como lenguaje para un editor de texto extensible. Tiene que editar el código fuente directamente si desea cambiar el comportamiento. No puede asesorar fácilmente las funciones y no puede explorar Elisp en la memoria. Dado que su implementación de Python se abstrae de Elisp normal, esto elimina gran parte del comportamiento de autodocumentación que hace que Emacs sea excelente, y los errores se vuelven menos informativos. Los lenguajes de extensión como este son principalmente útiles para interactuar con paquetes externos escritos en otro idioma.


Ahora hay una bifurcación actualizada (resulta que el autor original falleció): github.com/dgentry/Pymacs
braham-snyder

7

Puede extender Emacs en otros idiomas, como Haskell y OCaml .

Hay una discusión en Reddit sobre las ventajas y desventajas de hacerlo. En resumen, no creo que sea una buena idea usar otros lenguajes (excepto posiblemente C para el rendimiento) debido a la necesidad de un tiempo de ejecución adicional y la falta de conocimiento común por parte de otros en la comunidad de Emacs sobre los lenguajes de extensión que no son de Elisp.


4

Hay algo llamado Pymacs que es una interfaz de python a emacs-lisp. Aunque el proyecto no parece tan activo. El wiki mantiene una lista de otros módulos que le permite extender emacs en algo que no sea elisp.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.