【问题标题】:erlang shell help for a module's function模块功能的 erlang shell 帮助
【发布时间】:2014-11-09 03:19:57
【问题描述】:

我在 shell 中工作,我想查看函数 io:format/1 的帮助。

我的思路如下:

  1. 执行help() - 我找到命令m().
  2. 执行m(io) - 我看到io 模块中的函数列表

问题:如何从 erlang Shell 中深入查找函数 io:format/1 的帮助?


help(). 的输出:

1> help().
...
m(Mod)     -- information about module <Mod>
memory()   -- memory allocation information
...
true

m(io). 的输出:

2> m(io).
Module io compiled: Date: July 10 2013, Time: 10.46
Compiler options:  [{outdir,"/build/buildd/erlang-16.b.1-dfsg/lib/stdlib/src/../ebin"},
                    {i,"/build/buildd/erlang-16.b.1-dfsg/lib/stdlib/src/../include"},
                    {i,"/build/buildd/erlang-16.b.1-dfsg/lib/stdlib/src/../../kernel/include"},
                    warnings_as_errors,debug_info]
Object file: /usr/lib/erlang/lib/stdlib-1.19.2/ebin/io.beam
Exports: 
columns/1                     parse_erl_form/2
columns/0                     parse_erl_form/3
format/1                      parse_erl_form/4
format/2                      printable_range/0
format/3                      put_chars/2
...
parse_erl_exprs/4             setopts/2
parse_erl_exprs/3             setopts/1
parse_erl_form/1              write/1
                              write/2
ok

【问题讨论】:

    标签: erlang erlang-shell


    【解决方案1】:

    截至 2020 年,在 OTP 23.0 上,现在可以使用 h 函数:

    摘录release doc

    shell 中的新函数用于显示 Erlang 模块、函数和类型的文档。这 功能是:

    h/1,2,3 -- Print the documentation for a Module:Function/Arity.
    ht/1,2,3 -- Print the type documentation for a Module:Type/Arity.
    The embedded documentation is created as docchunks (EEP 48) when building the Erlang/OTP documentation.
    

    例子:

    2> h(lists, reverse).
    
      -spec reverse(List1) -> List2
                       when List1 :: [T], List2 :: [T], T :: term().
    
      Returns a list with the elements in List1 in
      reverse order.
    
      -spec reverse(List1, Tail) -> List2
                       when
                           List1 :: [T],
                           Tail :: term(),
                           List2 :: [T],
                           T :: term().
    
      Returns a list with the elements in List1 in
      reverse order, with tail Tail appended.
    
      Example:
    
        > lists:reverse([1, 2, 3, 4], [a, b, c]).
        [4,3,2,1,a,b,c]
    ok
    

    【讨论】:

      【解决方案2】:

      与 Python、Lisp 等不同,Erlang 程序和 shell 会话无法访问标准库中函数的帮助文本。

      我找到文档的方式是为 URL http://www.erlang.org/doc/man/%s.html 使用一个特殊的 Firefox 书签。我将 e 指定为该书签的热键,这样我就可以在 Firefox 地址栏中键入 e io 并重定向到 http://www.erlang.org/doc/man/io.html,其中包含 io 中的函数文档模块。

      或者,您可能会发现http://erldocs.com/ 很有用。它可以让您输入您要查找的函数的名称并直接跳转到其文档。

      【讨论】:

      猜你喜欢
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多