2

I'm looking for a convenient way to quickly look up the documentation for different functions and/or packages in Go. My current approach is to google for say ioutil.ReadFile, but that is pretty slow/inconvenient. The ideal solution would work directly in vim or maybe in a Go interpreter(suggestions?).

E.g. in Python the documentation of a function can be shown in PyDev by hovering over a function or using the ipython interpreter with e.g. os.open? or help(os.open).

How do you view specific documentation for Go?

4

4 回答 4

5

你有很多可能性:

  • 浏览http://golang.org/pkg/和/或使用“搜索”框,它甚至知道正则表达式!
  • 运行本地 godoc 并为所有本地安装的软件包获取相同的信息。更快和离线!
  • 从命令行查询 godoc:

$ godoc io/ioutil ReadFile
PACKAGE DOCUMENTATION

package ioutil
    import "io/ioutil"



FUNCTIONS

func ReadFile(filename string) ([]byte, error)
    ReadFile reads the file named by filename and returns the contents. A
    successful call returns err == nil, not err == EOF. Because ReadFile
    reads the whole file, it does not treat an EOF from Read as an error to
    be reported.


$ 

  • 使用 Rob Pike 的doc[0]。

$ doc ioutil.ReadFile
http://golang.org/pkg/io/ioutil/#ReadFile
/home/jnml/go/src/pkg/io/ioutil/ioutil.go:48:
// ReadFile reads the file named by filename and returns the contents.
// A successful call returns err == nil, not err == EOF. Because ReadFile
// reads the whole file, it does not treat an EOF from Read as an error
// to be reported.
func ReadFile(filename string) ([]byte, error)

$ 

[0]:$ go get code.google.com/p/rspace.cmd/doc

于 2013-07-30T11:18:18.957 回答
1

我使用godoc,一个适用于 Vim 和 Sublime 的自动完成守护进程。godoc 与GoSublime插件集成。godoc 的好处是它为所有包提供了自动完成功能。除了自动完成之外,我还可以按下super-., super-HSublime,它会提供我输入的函数的文档。

我还使用Dash来快速记录文档。我使用DashDoc从 Sublime 快速查找 Dash 中的内容。还有dash.vim为 Vim 中的 Dash 提供了一个插件。

Dash 仅提供内置包的文档,但我主要将它用于其他内容的离线文档。到目前为止,这是调出我发现的 HTML 格式文档的最快方法。

于 2013-08-05T22:42:27.347 回答
1

在 Vim 中(假设您已经安装了Go 的插件),键入:Godoc <something>,您将在不离开编辑器的情况下获得文档。您显然可以将一个键映射到这个(没有参数,如果我没记错的话,它会在光标位置搜索令牌)。

话虽如此,我也经常在 Vim 中使用Rob Pike'sdoc:!doc <something> ( )。

于 2013-07-30T12:29:16.223 回答
0

您可以为此使用 godoc 命令行工具。godoc os Open将查找os.Open并仅显示与该功能相关的内容。您可以使用-ex.

例子:

$ godoc os Signal

PACKAGE DOCUMENTATION

package os
    import "os"



TYPES

type File struct {
    // contains filtered or unexported fields
}
    File represents an open file descriptor.


func Open(name string) (file *File, err error)
    Open opens the named file for reading. If successful, methods on the
    returned file can be used for reading; the associated file descriptor
    has mode O_RDONLY. If there is an error, it will be of type *PathError.

您也可以运行godoc -http,它将运行一个网络服务器,向您显示所有包的文档(默认端口为 6060)。

看看godoc 文档。这是一个很棒的工具,它可以做更多的事情。

还有godoc.org,它基本上是一个替代的godocWeb 前端,如果提供像这样的 go 路径http://godoc.org/github.com/golang/groupcache#上下文

于 2013-07-30T11:19:16.780 回答