C'è un modo per usare python invece di elisp per estendere emacs?


11

Sono interessato a usare lingue diverse da elisp per scrivere le estensioni di emacs, è possibile? Se python non è supportato, quali sono le lingue?

Risposte:


10

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.


C'è un fork aggiornato per ora (risulta che l'autore originale è
deceduto

7

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.


4

C'è qualcosa chiamato Pymacs che è un'interfaccia da pitone a emacs-lisp. Anche se il progetto non sembra così attivo. Il wiki mantiene un elenco di altri moduli che ti consente di estendere emacs in qualcosa di diverso da elisp.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.