Respuestas:
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.
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.