Apakah ada cara untuk menggunakan python daripada elisp untuk memperluas emacs?


11

Saya tertarik menggunakan bahasa selain elisp untuk menulis ekstensi emacs, apakah ini mungkin? Jika python tidak didukung, bahasa apa itu?

Jawaban:


10

Seperti yang dikatakan Tephra, Pymacs adalah paket yang dirancang untuk ini.

Ini adalah antarmuka antara Python dan Emacs Lisp. Proyek ini tidak terlalu aktif tetapi dari apa yang saya mengerti itu berfungsi penuh dengan versi terbaru dari Emacs. Beberapa paket Python menggunakannya (misalnya, Ropemacs ) sehingga setiap perubahan pada Emacs yang memecahnya kemungkinan akan diperbaiki.

Tautan GitHub ke dokumentasi online tampaknya sudah mati, tetapi Anda masih dapat menemukannya di Mesin Wayback . Dokumentasi Wayback hanya tersedia untuk versi 0.23 - versi saat ini adalah 0.25. Perubahannya cukup kecil. Kode sumber Ropemacs adalah tempat yang baik untuk mencari contoh, seperti halnya proyek lain yang diimplementasikan dengan Pymacs.

Masalah dengan Pymacs adalah ia menghilangkan banyak hal yang menjadikan Elisp berguna sebagai bahasa untuk editor teks yang dapat diperluas. Anda harus mengedit kode sumber secara langsung jika Anda ingin mengubah perilaku. Anda tidak dapat dengan mudah menyarankan fungsi dan Anda tidak dapat menelusuri Elisp di memori. Karena implementasi Python Anda diabstraksikan dari Elisp normal, ini menghilangkan banyak perilaku mendokumentasikan diri yang membuat Emacs hebat, dan kesalahan menjadi kurang informatif. Bahasa ekstensi seperti ini terutama bermanfaat untuk antarmuka ke paket eksternal yang ditulis dalam bahasa lain.


Ada garpu yang diperbarui untuk sekarang (ternyata penulis aslinya meninggal): github.com/dgentry/Pymacs
braham-snyder

7

Anda dapat memperluas Emacs dalam bahasa lain, seperti Haskell dan OCaml .

Ada diskusi tentang Reddit tentang keuntungan dan kerugian melakukannya. Singkatnya, saya tidak berpikir itu ide yang baik untuk menggunakan bahasa lain (kecuali mungkin C untuk kinerja) karena kebutuhan untuk runtime tambahan dan kurangnya pengetahuan umum oleh orang lain di komunitas Emacs tentang bahasa ekstensi non-Elisp.


4

Ada sesuatu yang disebut Pymacs yang merupakan antarmuka python ke emacs-lisp. Meskipun proyeknya tidak begitu aktif. Wiki menyimpan daftar modul lain yang memungkinkan Anda untuk memperluas emacs dalam sesuatu selain elisp.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.