如何使用SLIME作为Common Lisp程序和Emacs Lisp之间的代理?


15

我正在考虑做以下事情:我有一个用Common Lisp编写的程序,我希望能够与Emacs进行通信。该程序处理自然语言解析,因此我需要在Emacs中访问的内容是缓冲区的内容以及创建消息以发送到Common Lisp程序所需的一些最少的初步解析。然后,Common Lisp程序将处理消息并回复Emacs Lisp程序,以便显示结果。

我知道SLIME将是实现此目的的好工具,主要是因为它已经完成了大部分工作,但是查看文档后,我发现它是“用户文档”类型,而不是“开发人员文档”。本质上,我想知道在Emacs Lisp方面可以用来进行通信的最低要求(在这种情况下,我当然不需要自省或REPL,我所需要的就是向和发送消息。从我在SWANK中运行的程序中)。

Answers:


7

从CL方面,您要查找的功能是swank::eval-in-emacs将要在emacs中评估的代码传递给该函数。您可以在此处看到一个示例,以使emacs运行graphivz命令并在缓冲区中打开生成的png。从emacs角度来看,您正在寻找的功能是slime-eval(可在slime.el中找到)


抱歉,我花了一段时间才恢复原状。
wvxvw
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.