2

是否有任何常见的 lisp 文档,如 javadoc、man 甚至类似智能感知的弹出窗口?我刚开始学习普通的口齿不清,手部记忆力还不够。

我正在使用 emacs 和 slime——它具有 tab 补全功能,但似乎信息量不大。

谢谢!

4

2 回答 2

2

以防万一这个问题是为了询问参考在哪里 - 网上有几个 Hyperspecs 可用。如果您在 Google 上搜索“hyperspec function-name”之类的内容,您很有可能会找到其中一个。

http://clhs.lisp.se/Front/index.htm

http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/index.html

例如。

根据您的编辑器,您通常可以将其配置为也显示超规范内容。在 Emacs 中使用 SLIME 你可以做到M-x slime-hyperspec-lookup RET symbol-to-look-for

另一个方便的工具是apropos- 通过运行(apropos "substring-in-the-symbol-name"),您将获得与“substring-in-the-symbol-name”匹配的所有符号的列表。

SLIME 本身提供了很好的自动补全功能。可能会让您感到不安的是,默认键可能绑定到您的系统未发送到 Emacs 的东西(如 M-TAB),以便将其重新绑定到您可以执行的其他操作(在您的 .emacs 文件中):

(define-key lisp-mode-map (kbd "C-x .")
  'slime-complete-symbol)
(define-key lisp-mode-map (kbd "C-x /")
  'slime-complete-form)
(define-key lisp-mode-map (kbd "C-x ,")
  'slime-fuzzy-complete-symbol)

此外,Emacs 自己提供“词法”补全——如果你按 M-/ 这将尝试将单词补全为具有相同后缀的单词——它的效果出奇的好,尤其是当你必须输入长变量/函数名时:)

此外,SLIME 绑定C-c C-d fslime-describe-function-at-pointC-c C-d dslime-describe-symbol-at-pointC-c C-v dslime-describe-presentation-at-point

此外......经过一段时间后对我的启示......如果你在包含错误堆栈跟踪的缓冲区中按RET,指向堆栈条目,它将显示局部变量的值该堆栈级别的函数。如果当点位于其中任何一个变量上时按 RET,它将打开一个描述该变量的缓冲区。

于 2012-06-25T17:50:04.810 回答
1

查看清单以获取基于包的文档。请记住,Common Lisp 旨在用作动态系统,并将可选的文档字符串槽合并到它拥有的每个声明原语中。AFAIK,获取有关给定函数的文档的标准方法是仅(describe #'function-name-here)在 repl 上运行(#如果您正在寻找有关符号的文档)。

这将使您可以访问文档字符串和参数列表(在方法的情况下,您可以获得通用函数文档以及每个特定方法的汇编)。

查看autocomplete-mode, 并可能yasnippet完成。

于 2012-06-25T16:54:53.050 回答