Enabling go mode for emacs

Emacs

Emacs Problem Overview


I don't seem to be able to enable a go mode for emacs. C mode doesn't work without semicolons. The best I have found is the JavaScript mode by Karl Landstrom, since JavaScript also doesn't require semicolons.

Emacs Solutions


Solution 1 - Emacs

Try misc/emacs/go-mode.el (web link) in the Go distribution.

If you are using Emacs 24 and marmalade repo, use M-x package-install <RET> go-mode to install it directly.

Solution 2 - Emacs

If your Go installs to /usr/local/go then add the following to your .emacs file.

;; go mode                                                                                           
(setq load-path (cons "/usr/local/go/misc/emacs" load-path))                                         
(require 'go-mode-load)

Solution 3 - Emacs

Update from 2014 for Linux users

You can now download the golang-mode for Emacs from your package manager:

  • Fedora: yum install emacs-golang
  • Debian: apt-get install golang-mode
  • Ubuntu: apt-get install golang-mode

I only checked on Fedora, but the package is automatically installed and you have nothing to do except enjoying your new golang mode! And it is also updated as any other package of your system.

There are probably packages on other Linux distributions too.

Solution 4 - Emacs

Read Writing Go in Emacs and its follow-up, written by Dominik Honnef, the author of the official go-mode.

There he explains the story of go-mode and ways to install it, how to read Go documentation from inside Emacs, how to manage import statements of Go files in Emacs, how to setup autocomplete, on-the-fly syntax checking, snippets, and a lot of other super useful features for developing Go in Emacs.

Solution 5 - Emacs

Yes, there is. It is in the source code, inside the misc/emacs dir.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionuser181548View Question on Stackoverflow
Solution 1 - Emacsuser181548View Answer on Stackoverflow
Solution 2 - EmacsSpyplaneView Answer on Stackoverflow
Solution 3 - EmacsjuliencView Answer on Stackoverflow
Solution 4 - EmacsMostafaView Answer on Stackoverflow
Solution 5 - EmacsMikeView Answer on Stackoverflow