8

想象一下 dunnet.el 游戏、eliza 医生或 IELM 模式……;也就是说,在主缓冲区上评估答案并提示新问题,然后根据它们的 elisp 规则进行一些操作。

我想创建一个类似交互式助手的东西,但不会像(交互式)那样(不做 Mx)从 minibuffer 提示......我需要一种 REPL 循环。所以我的问题是如何在工作缓冲区(主屏幕)上进行交互,就像任何文本对话/冒险一样,但是以这种方式调用我的定义函数。

所以我需要一个基本的 elisp 骨架来制作自定义 REPL。目标是用自然语言做一个助手,然后解析答案,并根据规则做出一些动作。

感谢您的时间,

史蒂夫,

4

3 回答 3

5

查看 ielm,它是 emacs 中包含的一个 elisp repl。

于 2011-01-16T16:54:11.910 回答
2

根据缓冲区中可能发生的情况,您可以给它一个适当的重新绑定的主要模式return吗?(这个答案隐约受到 Lisp-Interaction-Mode 的 Cj 的启发)

于 2011-01-16T16:14:59.207 回答
0

您应该绑定所有用于在缓冲区中移动的键,例如 Cp Cn、向上向下箭头/向上/向下翻页,只需将它们绑定到(lambda ()). 如果光标位置在行首或行尾,则更改 Cb 和 Cf(左右箭头)的功能。并将 Return 键绑定到从末尾读取当前行到可选提示的函数(您可以使用 Regex 删除提示)对该字符串执行任何您想要的操作,然后转到缓冲区中的下一行并打印您的结果。

于 2011-01-23T22:12:30.097 回答