有没有办法从 emacs 中查看通用 lisp 函数及其文档的参数?或者还可以查看所有可用功能的列表?
4 回答
SLIME 自动加载eldoc-mode
- 这是在 minibuffer 中显示函数参数的模式。如果您的意思cl
是 Emacs Lisp 库,您可以使用M-xeldoc-mode
.
另一个有用的 SLIME 功能是C-c C-d C-d- 这会弹出一个新缓冲区,其中包含有关该功能的文档。
这些也非常有用:
- C-c C-w C-a
slime-who-specializes
- C-c C-w C-b
slime-who-binds
- C-c C-w C-c
slime-who-calls
- C-c C-w RET
slime-who-macroexpands
- C-c C-w C-r
slime-who-references
- C-c C-w C-s
slime-who-sets
- C-c C-w C-w
slime-calls-who
- C-c C-w a
slime-who-specializes
- C-c C-w b
slime-who-binds
- C-c C-w c
slime-who-calls
- C-c C-w m
slime-who-macroexpands
- C-c C-w r
slime-who-references
- C-c C-w s
slime-who-sets
- C-c C-w w
slime-calls-who
从他们的名字中应该很明显他们做了什么。
此外,还有一个auto-complete
SLIME 插件,它可以在下拉菜单中显示文档和函数参数(嗯,有点),在视觉上类似于 Visual Studio 或 Eclipse 的操作方式。我认为它被称为ac-slime
并且可以通过 ELPA 安装。
您可以使用documentation
. (以下示例获取有关函数的信息list
。)
(documentation 'list 'function)
"Returns constructs and returns a list of its arguments."
要获取参数列表,某些包中通常有一个依赖arglist
于实现的函数。您可以使用 搜索此功能(apropos 'arglist)
。这将为您提供名称包含的所有实习符号的列表arglist
。
例如在 CMUCL 中它是(swank-backend::arglist 'list)
,在 CLISP 中它只是(arglist 'list)
,等等。
注意如果你使用SLIME,你应该在下面看到可用的参数。
有点。该手册GNU Emacs Common Lisp Emulation
随 GNU Emacs 一起提供——它CL
位于主( -dir
级)信息菜单中。请参阅功能索引以获取记录的功能列表。但是文档有些不完整,它只记录了 Emacs 实现,这有时与 Common Lisp 规范不同。
有关该语言的准确信息,请参阅 Common Lisp 文档。
以下所有内容均来自http://cl-cookbook.sourceforge.net/emacs-ide.html
Q2。从 Emacs 中查看 HyperSpec
Q2 我喜欢在 Emacs 中访问 HyperSpec,但为什么必须使用外部浏览器?为什么我在 Emacs 中看不到 HyperSpec?
A2 如果您使用 Emacs 附加包 W3(或提供类似功能的 W3M),您可以在 Emacs 中显示 HTML 页面。安装 W3 和 HyperSpec 后,使用类似于以下的代码从 Shift-F1 键访问 HyperSpec:
(global-set-key [(shift f1)]
'(lambda ()
(interactive)
(let ((browse-url-browser-function
'browse-url-w3)
(common-lisp-hyperspec-root
"file://c:/home/docs/Hyperspec/")
(common-lisp-hyperspec-symbol-table
(concat common-lisp-hyperspec-root
"Data/Map_Sym.txt"))
(hyperspec-prog
"c:/home/site/ilisp/extra/hyperspec"))
(load-library hyperspec-prog)
(common-lisp-hyperspec
(thing-at-point 'symbol)))))
请注意,上述代码中的“let”仅针对 HyperSpec 将 browse-url-browser-function 设置为 W3。您可以全局设置变量(如果您想始终使用 W3 或其他特定浏览器)或本地设置(如果您想使用特定浏览器而不是默认浏览器)。