emacsの拡張にelispの代わりにpythonを使用する方法はありますか?


11

elisp以外の言語を使用してemacs拡張機能を作成することに興味がありますが、これはまったく可能ですか?Pythonがサポートされていない場合、どの言語がサポートされますか?

回答:


10

Tephraが言ったように、Pymacsはこのために設計されたパッケージです。

PythonとEmacs Lisp間のインターフェースです。プロジェクトはあまり活発ではありませんが、私が理解しているところによると、最新バージョンのEmacsで完全に機能しています。いくつかのPythonパッケージがそれを使用しているため(たとえば、Ropemacs)、Emacsを変更して変更を加えると、修正される可能性があります。

オンラインドキュメントへのGitHubリンクは機能していないようですが、Wayback Machineで見つけることができます。Waybackのドキュメントはバージョン0.23でのみ利用可能です-現在のバージョンは0.25です。ただし、変更はかなりマイナーです。Ropemacsソースコードは、Pymacsで実装された他のプロジェクトと同様に、例を探すのに適した場所です。

Pymacsの問題は、拡張可能なテキストエディターの言語としてElispを有用なものにしている多くの機能を取り除くことです。動作を変更したい場合は、ソースコードを直接編集する必要があります。あなたは簡単に関数を助言することはできず、メモリ内でElispを閲覧することはできません。Pythonの実装は通常のElispから抽象化されているため、これはEmacsを優れたものにする多くの自己文書化動作を削除し、エラーの情報が少なくなります。このような拡張言語は、主に別の言語で記述された外部パッケージとのインターフェースに役立ちます。


現在、更新されたフォークがあります(元の著者が亡くなったことが判明します):github.com/dgentry/Pymacs
braham-snyder

7

EmacsをHaskellOCamlなどの他の言語で拡張できます。

Redditには、そうすることの利点と欠点についての議論があります。要するに、追加のランタイムが必要であり、Emacsコミュニティの他の人が非Elisp拡張言語について共通の知識を欠いているため、他の言語(おそらくパフォーマンスのためにCを除く)を使用するのは良い考えではないと思います。


4

pythonからemacs-lispへのインターフェースであるPymacsと呼ばれるものがあります。プロジェクトはそれほど活発ではないようですが。wikiは elisp以外でemacsを拡張できる他のモジュールのリストを保持しいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.