想象一下dunnet.el游戏,eliza医生或IELM模式......;这是,评估答案并在主缓冲区上提示新问题,然后根据其elisp规则进行一些操作。
我想创建类似交互式助手的东西,但不要从迷你缓冲区提示(交互式)(不做M-x)......我需要一种REPL循环。所以问题是如何在工作缓冲区(主屏幕)上进行交互,就像任何文本会话/冒险一样,但是以这种方式调用我的defun'ed函数。
所以我需要一个基本的elisp骨架来制作一个自定义的REPL。目标是使用自然语言制作助手,然后解析导体,并根据规则进行一些操作。
感谢您的时间,
史蒂夫,
答案 0 :(得分:5)
查看ielm,这是emacs附带的elisp repl。
答案 1 :(得分:2)
根据缓冲区中可以进行的操作,您是否可以通过return
的适当重新绑定为其提供主要模式? (这个答案含糊地受Lisp-Interaction-Mode的C-j启发)
答案 2 :(得分:0)
你应该绑定所有用于移动缓冲区的键,如C-p C-n,Up Down Arrows / page up / down,只需将它们绑定到(lambda ())
即可。如果光标位置在行的开头或结尾,则更改C-b和C-f(左右箭头)的功能。并将Return键绑定到从当前行读取当前行到可选提示的函数(可以使用Regex删除提示)使用该字符串执行任何操作,然后转到缓冲区中的下一行并打印结果。