Portacle-为什么访问文件时功能智能感知停止工作在repl中有效

问题描述

我对emacs和lisp非常陌生,所以我从portacle开始。当它在repl中启动时,我可以定义函数,然后当我使用它们时,在底部引用参数名称时会得到一些智能提示。但是,当我打开文件时,Intellisense无法用于新文件

如何使intellisense(函数的参数名称)对文件起作用,就像在repl中一样?

解决方法

您所说的“智能”就是emacs / SLIME所说的“完成”(虽然这是个好名字,但是较早的词和更笼统的术语对Lisp的人更有意义)。

正如Rainer在评论中建议的那样,您没有得到任何有用的文件的原因是,因为这种工作方式是Emacs秘密地与Lisp实现对话(在这种情况下,我认为是SBCL)并询问它,几乎“告诉我有关此事的事情”,并且SBCL仅在了解有关“此事”的任何信息后才能执行此操作,直到它加载了相关文件,它才知道。 / p>

我不知道Portacle的绑定是什么,但是在更简单的SLIME环境中加载文件的方式是,在Emacs中访问文件时,说CcCk(即control-C control-K) ,它将编译并加载文件。


对于不习惯使用Lisp环境的人们来说,这种生活方式可能是相当陌生的,但是在Lisp的世界中,情况总是如此:Lisps通常是您将代码加载到其中的增量系统,并且代码被载入世界,世界变得更加丰富,并且能够告诉您有关它所看到的代码的信息。实际上,至少过去很常见的一种方法是将一大堆东西加载到Lisp中,然后保存该正在运行的映像以供以后重新启动:这些保存的映像通常称为“世界负载”,“ bands”,“ sysouts” (在某些异端机器上),或仅是“图像”。