How can you see the documentation for a specific go function?

go, vim

Solution

You have many possibilities:

- Browse http://golang.org/pkg/ and/or use the "Search" box, which even knows regexps!

- Run local godoc and get the same for all locally installed packages. Faster and off-line!

- Query godoc from the command line:

$ 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.


$ 

- Use Rob Pike's `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`

Problem

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?

Original source