Emacs golang 配置
在配置前需要下载用到的包:
- godoc
- godef
- gocode
- oracle
在下载包之前需要设置好环境变量:
# Golang
export GOROOT=$HOME/go
export GOPATH=$HOME/development/go
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin
如果网络良好的话使用这种方法:
godoc:
go get golang.org/x/tools/cmd/godoc
这样会将godoc二进制文件安装到$GOROOT/bin目录里。
godef:
go get github.com/rogpeppe/godef
这样会将godef二进制文件安装到$GOPATH/bin目录里。
gocode 自动完成:
go get -u github.com/nsf/gocode
这样会将gocode二进制文件安装到$GOPATH/bin目录里。
go oracle
go get golang.org/x/tools/cmd/oracle
oracle二进制文件将出现在$GOPATH/bin目录里,将它移动到$GOROOT/bin目录里。
下面是emacs的golang配置:
;;; init-go --- golang
;;; Commentary:
;; http://tleyden.github.io/blog/2014/05/22/configure-emacs-as-a-go-editor-from-scratch/
;; https://robinxiong.gitbooks.io/golang/content/section1/emacs.html
;; http://studygolang.com/topics/583 ;;; Code: (require-package 'go-mode)
(require-package 'company-go) (require 'go-mode) ;; removes all unused imports
(add-hook 'go-mode-hook '(lambda() (local-set-key (kbd "C-c C-r")'go-remove-unused-imports))) ;; format the current buffer
(add-hook 'go-mode-hook '(lambda () (local-set-key (kbd "C-c C-f") 'gofmt))) ;; format the buffer when save
(add-hook 'before-save-hook 'gofmt-before-save) ;; show the go documentation for a given package
;; Note: godoc depends on the godoc utility.
;; It must be installed and on your $PATH.
;; To install it run: go get code.google.com/p/go.tools/cmd/godoc.
(add-hook 'go-mode-hook '(lambda() (local-set-key (kbd "C-c C-k") 'godoc))) ;; Gocode autocomplete
;;(add-hook 'go-mode-hook 'company-mode)
(add-hook 'go-mode-hook '(lambda()
(set (make-local-variable 'company-backends)'(company-go))
(company-mode))) ;; Go oracle
;; Note: $GOPATH will defined in init-exec-path-from-shell
(load-file "$GOPATH/src/golang.org/x/tools/cmd/oracle/oracle.el")
(add-hook 'go-mode-hook 'go-oracle-mode) (provide 'init-go)
;;; init-go.el ends here
;;; init-exec-path-from-shell --- exec path form shell
;;; Commentary:
;; Let Emacs use .bashrc file,especially system $PATH.
;;; Code: (require-package 'exec-path-from-shell) (when (memq window-system '(mac ns x))
(exec-path-from-shell-initialize)) ;;; for golang
(exec-path-from-shell-copy-env "GOPATH") (provide 'init-exec-path-from-shell)
;;; init-exec-path-from-shell.el ends here
另一种方法:
注意:从github克隆的golang.org应该放在src目录里!
~/development/go/src ᐅ git clone https://github.com/golang/tools golang.org/x/tools
正克隆到 'golang.org/x/tools'...
remote: Counting objects: , done.
接收对象中: % (/), 404.01 KiB | 69.00 KiB/s
编译godoc:
go build golang.org/x/tools/cmd/godoc
注意:编译出的godoc二进制文件应该放在 ~/development/go/bin目录里!
安装golang教程(这个是英文版的):
git clone https://github.com/golang/tour
go build golang.org/x/tour/gotour
golang.org/x/tools/playground/socket/socket.go::: cannot find package "golang.org/x/net/websocket" in any of:
/home/z/go/src/golang.org/x/net/websocket (from $GOROOT)
/home/z/development/go/src/golang.org/x/net/websocket (from $GOPATH)
怎么办?
ᐅ git clone https://github.com/golang/net 注意:gotour和net这2个目录和tools目录是平级的,它们都在$GOPATH/src/golang.org/x 目录下。
x
├── net
├── tools
└── tour
ᐅ go build golang.org/x/tour/gotour
安装中文版的教程:
git clone https://github.com/Go-zh/tour github.com/Go-zh/tour
git clone https://github.com/Go-zh/tools github.com/Go-zh/tools
注意tour和tools是同级目录。
github.com/Go-zh
├── tools
└── tour
编译中文版教程:
go build github.com/Go-zh/tour/gotour
这时会在$GOPATH/src目录中出现一个gotour二进制文件,把它剪切到$GOPATH/bin目录中并重命名为gotour-zh。
在$GOPATH/bin中执行:./gotour-zh 即可开启浏览器。
安装godef:
git clone https://github.com/rogpeppe/godef github.com/rogpeppe/godef
go build github.com/rogpeppe/godef github.com/rogpeppe/godef/acme.go:11:2: cannot find package "9fans.net/go/acme" in any of:
/home/z/go/src/9fans.net/go/acme (from $GOROOT)
/home/z/development/go/src/9fans.net/go/acme (from $GOPATH)
解决方法:
git clone https://github.com/9fans/go 9fans.net/go
然后再编译安装godef:
go build github.com/rogpeppe/godef
参考:
http://studygolang.com/topics/583
http://tleyden.github.io/blog/2014/05/22/configure-emacs-as-a-go-editor-from-scratch/ https://robinxiong.gitbooks.io/golang/content/section1/emacs.html
--End--
Emacs golang 配置的更多相关文章
- [daily][emacs][go] 配置emacs go-mode的编辑环境以及环境变量问题
1. 安装go 安装go-mode 使用emacs编辑go代码的时候,你需要有正常可运行的go环境. 并且有emacs的go-mode package https://www.emacswiki.or ...
- Emacs 安装配置使用教程
Emacs 安装配置使用教程 来源 https://www.jianshu.com/u/a27b97f900f7 序|Preface 先来一篇有趣的简介:Emacs和Vim:神的编辑器和编辑器之神 - ...
- Viper--方便好用的Golang 配置库
前言 本文主要是为读者介绍一个轻便好用的Golang配置库viper 正文 viper 的功能 viper 支持以下功能: 1. 支持Yaml.Json. TOML.HCL 等格式的配置 ...
- ubuntu14.04 下emacs 24 配置
目的: 配置emacs 24 适合编程开发 主要参考JerryZhang的配置(Emacs 简易教程) http://www.perfect-is-shit.com/emacs-simple-tuto ...
- CentOS编译安装emacs并配置
Liunxs中CentOS系列一向以稳定为目标,然而也会存在版本太旧的问题,emacs就是其中的一个,目前emacs都发行到25.2了,而CentOS上的emacs版本却还是23.1.所以需要下载源代 ...
- Emacs编辑器配置
以前总是用的vim编辑器,今天突然想换emacs 用下.折腾了很久终于搞定.使用的是windows测试环境 emacs下载地址http://ftp.gnu.org/gnu/emacs/windows/ ...
- Emacs考场配置
当年\(NOip\)考场配置不记得啦 存在这里搞事情 (set-background-color "gray15") (set-foreground-color "gra ...
- 我的emacs考场配置
豪华配置(复制的神犇的,已膜改) (global-set-key [f9] 'compile-file) (global-set-key [f10] 'gud-gdb) (global-set-key ...
- visual code golang配置
前言 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org), 导致一些包无法安装,最终会导致环境搭建失败,跟据这个教程几步,我们将可以快速的构建golang ...
随机推荐
- oracle数据库连接字符串
不在项目加入tsname.ora的托管写法: <add name="CONN" connectionString="data source=127.0.0.1:15 ...
- emWin(ucGui)的Edit控件退格处理方法 worldsing
在enWin(ucGui)中EDIT控件在数值模式(十进制/十六进制/二进制/浮点数)下编辑是,无法使用BackSpace键进行退格,主要涉及到的函数有: EDIT_SetBinMode() EDIT ...
- 汇编语言程序入门实验一:在dos下对用户输入作出应答
汇编语言程序入门实验一:在dos下对用户输入作出应答 1,背景 成功预言了今天要上计算机操作系统上机实验课,昨天预习后,今天的两个上机实验做得很成功.但是也有一些问题.问题1:学校的系统目前是wind ...
- hdoj 5417 Victor and Machine
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5417 水题,一开始题目读错了做了好久,每次停工以后都是重新计时. 需要注意的是,先除后乘注意加括号 # ...
- maven profile动态选择配置文件
一.背景 在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配 ...
- C# 递归算法与冒泡
C# 递归算法求 1,1,2,3,5,8,13···static void Main(string[] args){ int[] cSum = new int[10];for (int i = 0; ...
- 一个优秀windows C++程序员的知识体系[转]
转自:一个优秀windows C++程序员的知识体系 思考一个优秀windows C++ 程序员该有哪些知识,可最终发现什么知识都不能少, 看下图: 除了上面知识,程序员还要不断学习, 保持对新知识的 ...
- CSS hack 和 IE浏览器条件判断 集中汇总
(从死了一次又一次终于挂掉的百度空间中抢救出来的,发表日期 2014-08-16) 未完待续 css hack ie 浏览器判断语句 360大多数网页的各浏览器兼容方法: <!DOCTYPE h ...
- cocos2d-x android java调用C++
转自:http://www.cnblogs.com/mokey/archive/2013/04/10/3012961.html java调用C++ 1.在jniHelper.java文件中定义一个方法 ...
- Mac下cocos2dx-3.0打包Android时,提示"SimpleAudioEngine.h"not found的解决方法
前段时间触控公布cocos2dx-3.0,在升级之后试过之后,在最初的不习惯之后,感觉比之前的好用了不少,在下之前一直是用xCode模板创建,这回算是一口气升到顶了. 之后再一次编程时须要用到Sima ...