Since I use spacemacs, everything is easy.
As soon as I started editing a
.go file, spacemacs offered to enable the
go layer. (I could have easily done it myself, but it is always awesome
when your editor "knows" and offers to help.)
After saving the
SPC f e R later (and I think I
had to reopen the buffer, I don't remember) I had working syntax highlighting
and "coding time error checking" (Thanks
This is when I noticed the "hard" tabs. See [References]
I was surprised to find out that
gofmt tool uses tabs (width=8) to
go code. I quickly learnt that I should not try to enforce
use of spaces, instead I could set my own tab width, the way I want.
So I added the following line to my
As I neared successfully completing my first
go program, I appreciated
how complete the
golang support is, in the spacemacs go layer.
As soon as I save the file, the
gofmt command is fires up, and shows up
any errors in the right hand side buffer (split window)
If there are no errors, the it formats the code as per the (go) standards.
There are more
go layer functionalities like :
godoc: Shows up the documentation. Works offline as well. I checked ;)
go-import-add: I'm yet to realize the usefulness of this, but seems nice.
You can send a buffer or a region to the "go playground"
Most of these are available via
M-x command or via the menu bar.
I may write part two of this, or just update this once I start using
Edit [Jan 2, 2017]
As I started writing more
go code, I felt that I need auto completion,
which is configured by default in the go layer, but was broken, because I had
not installed the external dependencies 
Once I did that, auto-completion started working well.
I have not yet installed
gomtalinter, mostly because I am too new to
go and I think the errors shown by default are enough for me. In future,
I might start using
For default keyboard shortcuts configured for the
go layer, see 
|||Spacemacs go layer pre-requisites|
|||Spacemacs go commands|