Risposte:
Come diceva Tephra, Pymacs è un pacchetto progettato per questo.
È un'interfaccia tra Python ed Emacs Lisp. Il progetto non è molto attivo ma da quello che ho capito è perfettamente funzionante con l'ultima versione di Emacs. Alcuni pacchetti Python lo usano (ad esempio, Ropemacs ), quindi è probabile che eventuali modifiche a Emacs che lo rompono vengano risolte .
Il link GitHub alla documentazione online sembra essere morto, ma puoi ancora trovarlo sulla Wayback Machine . La documentazione Wayback è disponibile solo per la versione 0.23 - la versione corrente è 0.25. I cambiamenti sono piuttosto minori però. Il codice sorgente di Ropemacs è un buon posto per cercare esempi, così come gli altri progetti implementati con Pymacs.
Il problema con Pymacs è che toglie molto a ciò che rende Elisp utile come linguaggio per un editor di testo estensibile. Devi modificare il codice sorgente direttamente se vuoi cambiare comportamento. Non puoi consigliare facilmente le funzioni e non puoi sfogliare Elisp in memoria. Dato che l'implementazione di Python è stata estratta dal normale Elisp, ciò elimina gran parte del comportamento di auto-documentazione che rende grande Emacs e gli errori diventano meno informativi. I linguaggi di estensione come questo sono utili principalmente per l'interfacciamento a pacchetti esterni scritti in un'altra lingua.
Puoi estendere Emacs in altre lingue, come Haskell e OCaml .
C'è una discussione su Reddit sui vantaggi e gli svantaggi di farlo. In breve, non credo sia una buona idea usare altri linguaggi (tranne forse C per le prestazioni) a causa della necessità di un runtime aggiuntivo e della mancanza di conoscenza comune da parte di altri membri della comunità Emacs sui linguaggi di estensione non Elisp.