常见的lisp的man或javadoc风格的文档

时间:2012-06-25 16:28:40

标签: documentation lisp javadoc slime man

是否有任何类型的常见lisp文档,如javadoc,man甚至是intellisense-like弹出窗口?我刚刚开始学习普通的lisp并且没有足够的手部记忆。

我正在使用emacs和slime - 它有标签完成,但它似乎没有很多信息。

谢谢!

2 个答案:

答案 0 :(得分:2)

以防这个问题是为了询问引用的位置 - 在线提供了几种Hyperspec。如果你在Google上搜索“hyperspec function-name”这样的东西,你很可能会登陆其中一个。

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

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

例如。

根据您的编辑器,您通常可以将其配置为显示hyperspec内容。使用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- /这将尝试将单词填入具有相同后缀的单词 - 它的效果非常好,特别是如果你必须键入长变量/ function names:)

此外,SLIME将 Cc Cd f slime-describe-function-at-point Cc Cd d 绑定到slime-describe-symbol-at-point Cc Cv d slime-describe-presentation-at-point

此外......经过一段时间后,某些东西给了我一个启示......如果你在包含错误堆栈跟踪的缓冲区中按RET,指向堆栈条目,它将显示本地的值该堆栈级别的函数内部的变量。如果您在这些变量中的任何一个上按下RET,它将打开一个描述该变量的缓冲区。

答案 1 :(得分:1)

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

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

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