是否有任何常见的 lisp 文档,如 javadoc、man 甚至类似智能感知的弹出窗口?我刚开始学习普通的口齿不清,手部记忆力还不够。
我正在使用 emacs 和 slime——它具有 tab 补全功能,但似乎信息量不大。
谢谢!
是否有任何常见的 lisp 文档,如 javadoc、man 甚至类似智能感知的弹出窗口?我刚开始学习普通的口齿不清,手部记忆力还不够。
我正在使用 emacs 和 slime——它具有 tab 补全功能,但似乎信息量不大。
谢谢!
以防万一这个问题是为了询问参考在哪里 - 网上有几个 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 f到slime-describe-function-at-point
和C-c C-d d到slime-describe-symbol-at-point
和C-c C-v d到slime-describe-presentation-at-point
。
此外......经过一段时间后对我的启示......如果你在包含错误堆栈跟踪的缓冲区中按RET,指向堆栈条目,它将显示局部变量的值该堆栈级别的函数。如果当点位于其中任何一个变量上时按 RET,它将打开一个描述该变量的缓冲区。
查看清单以获取基于包的文档。请记住,Common Lisp 旨在用作动态系统,并将可选的文档字符串槽合并到它拥有的每个声明原语中。AFAIK,获取有关给定函数的文档的标准方法是仅(describe #'function-name-here)
在 repl 上运行(#
如果您正在寻找有关符号的文档)。
这将使您可以访问文档字符串和参数列表(在方法的情况下,您可以获得通用函数文档以及每个特定方法的汇编)。
查看autocomplete-mode
, 并可能yasnippet完成。