最近开始学习lisp,主要是用clisp和vim来装箱。我也想试试 sbcl,因为它经常被推荐为最好的免费 lisp 编译器之一。但是,有一件事让我更难使用 sbcl:我无法在 REPL 中获得自动完成功能,而我在 clisp 中确实有。也就是说,当我启动 sbcl 并键入以下内容(作为示例)时,
* (requi<tab>
哪里<tab>
是文字制表符,我没有得到完成列表,而是一个冗长的制表符。在 clisp 中,<tab>
将完成前一行到 * (require
.
由于我是 lisp 的新手,clisp 中的自动完成功能非常方便,所以如果有人能解释如何在 sbcl 中获得它,那将非常方便。
最佳答案
在 SBCL 中获取自动完成 repl 的一种方法是使用 linedit,来自 http://common-lisp.net/project/linedit/ .第二种是使用 rlwrap,一个 readline 包装器,带有合适的完成文件。 (我认为可以公平地说,这些都不像 emacs 那样常用,emacs 当然也提供了一个完整的 REPL 以及许多其他有用的功能。)
关于autocomplete - 在 sbcl 中启用自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379110/