4

有没有办法从 emacs 中查看通用 lisp 函数及其文档的参数?或者还可以查看所有可用功能的列表?

4

4 回答 4

8

SLIME 自动加载eldoc-mode- 这是在 minibuffer 中显示函数参数的模式。如果您的意思cl是 Emacs Lisp 库,您可以使用M-xeldoc-mode.

另一个有用的 SLIME 功能是C-c C-d C-d- 这会弹出一个新缓冲区,其中包含有关该功能的文档。

这些也非常有用:

  • C-c C-w C-aslime-who-specializes
  • C-c C-w C-bslime-who-binds
  • C-c C-w C-cslime-who-calls
  • C-c C-w RETslime-who-macroexpands
  • C-c C-w C-rslime-who-references
  • C-c C-w C-sslime-who-sets
  • C-c C-w C-wslime-calls-who
  • C-c C-w aslime-who-specializes
  • C-c C-w bslime-who-binds
  • C-c C-w cslime-who-calls
  • C-c C-w mslime-who-macroexpands
  • C-c C-w rslime-who-references
  • C-c C-w sslime-who-sets
  • C-c C-w wslime-calls-who

从他们的名字中应该很明显他们做了什么。

此外,还有一个auto-completeSLIME 插件,它可以在下拉菜单中显示文档和函数参数(嗯,有点),在视觉上类似于 Visual Studio 或 Eclipse 的操作方式。我认为它被称为ac-slime并且可以通过 ELPA 安装。

于 2013-10-21T08:06:56.807 回答
1

您可以使用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,你应该在下面看到可用的参数。

于 2013-10-21T06:53:42.717 回答
0

有点。该手册GNU Emacs Common Lisp Emulation随 GNU Emacs 一起提供——它CL位于主( -dir级)信息菜单中。请参阅功能索引以获取记录的功能列表。但是文档有些不完整,它只记录了 Emacs 实现,这有时与 Common Lisp 规范不同。

有关该语言的准确信息,请参阅 Common Lisp 文档。

于 2013-10-21T01:55:18.763 回答
0

以下所有内容均来自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 或其他特定浏览器)或本地设置(如果您想使用特定浏览器而不是默认浏览器)。

于 2013-10-21T08:04:29.437 回答