Réponses:
Comme l'a dit Tephra, Pymacs est un package conçu pour cela.
C'est une interface entre Python et Emacs Lisp. Le projet n'est pas très actif mais d'après ce que je comprends, il est entièrement fonctionnel avec la dernière version d'Emacs. Quelques packages Python l'utilisent (par exemple, Ropemacs ), donc toute modification d'Emacs qui le casse est susceptible d'être corrigée.
Le lien GitHub vers la documentation en ligne semble être mort, mais vous pouvez toujours le trouver sur la Wayback Machine . La documentation Wayback n'est disponible que pour la version 0.23 - la version actuelle est 0.25. Les changements sont cependant assez mineurs. Le code source de Ropemacs est un bon endroit pour chercher des exemples, tout comme les autres projets implémentés avec Pymacs.
Le problème avec Pymacs est qu'il enlève beaucoup de ce qui rend Elisp utile comme langue pour un éditeur de texte extensible. Vous devez modifier le code source directement si vous souhaitez modifier le comportement. Vous ne pouvez pas facilement conseiller les fonctions et vous ne pouvez pas parcourir Elisp en mémoire. Étant donné que votre implémentation Python est abstraite d'Elisp normal, cela supprime une grande partie du comportement d'auto-documentation qui rend Emacs génial, et les erreurs deviennent moins informatives. Les langages d'extension comme celui-ci sont principalement utiles pour l'interfaçage avec des packages externes écrits dans une autre langue.
Vous pouvez étendre Emacs dans d'autres langues, comme Haskell et OCaml .
Il y a une discussion sur Reddit sur les avantages et les inconvénients de le faire. En bref, je ne pense pas que ce soit une bonne idée d'utiliser d'autres langages (sauf éventuellement C pour les performances) en raison de la nécessité d'un runtime supplémentaire et du manque de connaissances communes par d'autres membres de la communauté Emacs sur les langages d'extension non Elisp.