linux下怎么安装Golinux开发环境境

1040人阅读
go语言学习(4)
bigwhite&&
虽说++是目前较为
流行的开发环境组合,但作为一名VIMer,没有一套得心应手的&for
Golang dev心里总是过不去的。Golang虽然年轻,但即便是从(日)算起,掐指算来也有小三年了。全世界的开发者已经为Golang贡献了较为成熟的Vim插件了。有了这些插件,搭建出 一套高效的Golang开发环境还是不难的,网上也有大量的资料可以参考,其中就有作者自己发表的一篇文章《》。不过看别人 写的与自己搭建体验的还是有大不同的,于是想来想去还是把整个过程记录下来。
一、一个干净的环境
找个干净的基础环境,方便确认每个搭建步骤后的效果:
vim version 7.4.52
go version go1.4beta1 linux/amd64
再准备一个编辑Go源码的测试源文件:
//hellogolang.go
package main
import &fmt&
func main() {
&&&&&&& fmt.Println(&Hello Golang!&)
用于验证每个搭建步骤后的变化。
二、严格按照vim-go的官方说明逐一搭建
Vim-go是当前使用最为广泛的用于搭建Golang开发环境的vim插件,这里我同样使用vim-go作为核心和基础进行环境搭建的。vim-go利 用开源Vim插件管理器安装,是目前被推荐次数更多的Vim插件管理器,超过了。这里我们
就用vundle来作为Vim的插件管理工具。
1、安装Vundle.vim
Vundle.vim的安装步骤如下:
mkdir ~/.vim/bundle
git clone&~/.vim/bundle/Vundle.vim&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
创建~/.vimrc文件(如果你没有这个文件的话),在文件顶部添加有关Vundle.vim的配置:
set nocompatible&&&&&&&&&&&&& & be iMproved, required
filetype off&&&&&&&&&&&&&&&&& & required
& set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
& let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
& All of your Plugins must be added before the following line
call vundle#end()&&&&&&&&&&& & required
filetype plugin indent on&&& & required
此时Vim仅安装了Vundle.vim这一个插件。编辑hellogolang.go时与编辑普通文本文件无异,一切都还是Vim的默认属性。
2、安装Vim-go
编辑~/.vimrc,在vundle#begin和vundle#end间增加一行:
Plugin 'fatih/vim-go'
在Vim内执行&&luginInstall,
Vundle.vim会在左侧打开一个Vundle Installer Preview子窗口,窗口下方会提示:“Processing 'fatih/vim-go'”,待安装完毕后,提示信息变 成“Done!”。
这时,我们可以看到.vim/bundle下多了一个vim-go文件夹:
$ ls .vim/bundle/
vim-go/& Vundle.vim/
此时,再次编辑hellogolang.go,语法高亮有了,&保存时自动format(利用$GOBIN/gofmt)也有了,但其他高级功能,比如自动import缺失的 package、自动补齐仍然没有,我们还要继续安装一些东东。
3、安装go.tools Binaries
vim-go安装说明中提到所有必要的binary需要先安装好,比如gocode、godef、goimports等。
通过:GoInstallBinaries,这些vim-go依赖的二进制工具将会自动被下载,并被安装到$GOBIN下或$GOPATH/bin下。(这个工具需要依赖git或hg,需要提前安装到你的OS中。)
:GoInstallBinaries的执行是交互式的,你需要回车确认:
vim-go: gocode not found. /nsf/gocode to folder /home/tonybai/go/bin
vim-go: goimports not found. Installing /p/go.tools/cmd/goimports to folder /home/tonybai/go/bin/
vim-go: godef not found. Installing /p/rog-go/exp/cmd/godef to folder /home/tonybai/go/bin/
vim-go: oracle not found. Installing /p/go.tools/cmd/oracle to folder /home/tonybai/go/bin/
vim-go: gorename not found. Installing /p/go.tools/cmd/gorename to folder /home/tonybai/go/bin/
vim-go: golint not found. /golang/lint/golint to folder /home/tonybai/go/bin/
vim-go: errcheck not found. /kisielk/errcheck to folder /home/tonybai/go/bin/
不过这些代码多在上托管,因此由于众所周知的原因,vim-go的自动安装很可能以失败告终,这样就需要你根据上 面日志中提到的各个工具的源码地址逐一去下载并本地安装。无法搭梯子的,可以通过http://gopm.io 下载相关包。
安装后,$GOBIN下的新增Binaries如下:
-rwxr-xr-x& 1 tonybai tonybai& ??& 7 11:03 errcheck*
-rwxr-xr-x& 1 tonybai tonybai& ??& 7 10:33 gocode*
-rwxr-xr-x& 1 tonybai tonybai& ??& 7 11:07 godef*
-rwxr-xr-x& 1 tonybai tonybai& ??& 7 11:00 goimports*
-rwxr-xr-x& 1 tonybai tonybai& ??& 7 11:03 golint*
-rwxr-xr-x& 1 tonybai tonybai& ??& 7 11:01 gorename*
-rwxr-xr-x& 1 tonybai tonybai& ??& 7 10:38 gotags*
-rwxr-xr-x& 1 tonybai tonybai& ??& 7 11:01 oracle*
安装好这些Binaries后,我们来看看哪些特性被支持了。
再次编辑hellogolang.go:
&&&&&&&&&- 新起一行输入fmt.,然后ctrl+x, ctrl+o,Vim 会弹出补齐提示下拉框,不过并非实时跟随的那种补齐,这个补齐是由gocode提供的。
&&& – 输入一行代码:time.Sleep(time.Second),执行:GoImports,Vim会自动导入time包。
&&& – 将光标移到Sleep函数上,执行:GoDef或命令模式下敲入gd,Vim会打开$GOROOT/src/time/sleep.go中 的Sleep函数的定义。执行:b 1返回到hellogolang.go。
&&& – 执行:GoLint,运行golint在当前Go源文件上。
&&& – 执行:GoDoc,打开当前光标对应符号的Go文档。
&&& – 执行:GoVet,在当前目录下运行go vet在当前Go源文件上。
&&& – 执行:GoRun,编译运行当前main package。
&&& – 执行:GoBuild,编译当前包,这取决于你的源文件,GoBuild不产生结果文件。
&&& – 执行:GoInstall,安装当前包。
&&& – 执行:GoTest,测试你当前路径下地_test.go文件。
&&& – 执行:GoCoverage,创建一个测试覆盖结果文件,并打开浏览器展示当前包的情况。
&&& – 执行:GoErrCheck,检查当前包种可能的未捕获的errors。
&&& – 执行:GoFiles,显示当前包对应的源文件列表。
&&& – 执行:GoDeps,显示当前包的依赖包列表。
&&& – 执行:GoImplements,显示当前类型实现的interface列表。
&&& – 执行:GoRename [to],将当前光标下的符号替换为[to]。
三、其他插件
到目前为止,我们还有若干特性没能实现,重点是:
&&& – 实时跟随的代码补齐
&&& – Code Snippet support
1、安装(Your Complete Me)
在~/.vimrc中添加一行:
Plugin 'Valloric/YouCompleteMe'
保存退出后,再打开~/.vimrc并执行&&luginInstall。
安装完后,下面的提示栏提示:
ycm_client_support.[so|pyd|dll] and ycm_core.[so|pyd|dll] you need to compile YCM before using it. Read the docs!
似乎YCM是用了C++编写的模块对性能进行优化了,于是需要手工编译YCM的support库。步骤如下:
sudo apt-get install build-essential cmake python-dev
cd ~/.vim/bundle/YouCompleteMe
./install.sh
构建(编译C++很慢,需要耐心的等一会)ok后,再打开hellogolang.go,逐字的实时补全功能就具备了!Cool!
Vim-go默认是用ultisnips引擎插件,但这个插件需要单独安装。
同样,我们利用vundle来安装它,在~/.vimrc中添加一行:
Plugin 'SirVer/ultisnips'
snippet和snippet引擎是分开的。ultisnips是引擎,vim-go的go snippet定义在这里
编辑hellogolang.go,按照go.snip中的说明,我们输入func后敲击tab键,我们发现期待的:
func name(params) type {
并没有出现。反倒是YCM的下拉提示显示在那里让你选择。似乎是ultisnips和YCM的键组合冲突了。ultisnips官方说明也的确如 此。ultisnips默认是用Tab展开snippet的,而YCM中的Tab用来选择补齐项,我们可以通过设置来避免这些。
我们在.vimrc中添加如下setting:
& YCM settings
let g:ycm_key_list_select_completion = ['', '']
let g:ycm_key_list_previous_completion = ['']
let g:ycm_key_invoke_completion = '&C-Space&'
& UltiSnips setting
let g:UltiSnipsExpandTrigger=&&tab&&
let g:UltiSnipsJumpForwardTrigger=&&c-b&&
let g:UltiSnipsJumpBackwardTrigger=&&c-z&&
这样让YCM通过回车和向下的箭头来做list item正向选择,通过向上箭头做反向选择。通过ctrl+space来原地触发补齐提示。
而ultisnips则是用tab做snippet展开,ctrl+b正向切换占位符,ctrl+z反向切换占位符。
3、安装molokai theme
Molokai theme是TextMate的theme的vim port,看着截图挺不错的,于是也安装了一下。
&&& mkdir ~/.vim/colors
&&& 下载或copy&&/colors目录下
&&& 在.vimrc添加一行:colorscheme molokai
四、.vimrc
前面讲到了vim-go有许多命令,在:xx模式下执行多显不便,于是你可以定义一些Mappings,比如:
& set mapleader
let mapleader = &,&
& vim-go custom mappings
au FileType go nmap &Leader&s &Plug&(go-implements)
au FileType go nmap &Leader&i &Plug&(go-info)
au FileType go nmap &Leader&gd &Plug&(go-doc)
au FileType go nmap &Leader&gv &Plug&(go-doc-vertical)
au FileType go nmap &leader&r &Plug&(go-run)
au FileType go nmap &leader&b &Plug&(go-build)
au FileType go nmap &leader&t &Plug&(go-test)
au FileType go nmap &leader&c &Plug&(go-coverage)
au FileType go nmap &Leader&ds &Plug&(go-def-split)
au FileType go nmap &Leader&dv &Plug&(go-def-vertical)
au FileType go nmap &Leader&dt &Plug&(go-def-tab)
au FileType go nmap &Leader&e &Plug&(go-rename)
这样我们在命令模式下,输入&,&+&r&就是运行 当前main包,以此类推。
另外下面这个配置使得我们在save file时既可以格式化代码,又可以自动插入包导入语句(或删除不用的包导入语句)。
& vim-go settings
let g:go_fmt_command = &goimports&
到这里,我们的Vim Golang开发环境就基本搭建好了。snippet+实时补齐让你Coding如飞!
五、附录:.vimrc文件
下面是截至目前为止全量.vimrc文件的内容:
set nocompatible&&&&&&&&&&&&& & be iMproved, required
filetype off&&&&&&&&&&&&&&&&& & required
colorscheme molokai
& set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
& let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'
Plugin 'fatih/vim-go'
Plugin 'Valloric/YouCompleteMe'
Plugin 'SirVer/ultisnips'
& All of your Plugins must be added before the following line
call vundle#end()&&&&&&&&&&& & required
filetype plugin indent on&&& & required
& set mapleader
let mapleader = &,&
& vim-go custom mappings
au FileType go nmap &Leader&s &Plug&(go-implements)
au FileType go nmap &Leader&i &Plug&(go-info)
au FileType go nmap &Leader&gd &Plug&(go-doc)
au FileType go nmap &Leader&gv &Plug&(go-doc-vertical)
au FileType go nmap &leader&r &Plug&(go-run)
au FileType go nmap &leader&b &Plug&(go-build)
au FileType go nmap &leader&t &Plug&(go-test)
au FileType go nmap &leader&c &Plug&(go-coverage)
au FileType go nmap &Leader&ds &Plug&(go-def-split)
au FileType go nmap &Leader&dv &Plug&(go-def-vertical)
au FileType go nmap &Leader&dt &Plug&(go-def-tab)
au FileType go nmap &Leader&e &Plug&(go-rename)
& vim-go settings
let g:go_fmt_command = &goimports&
& YCM settings
let g:ycm_key_list_select_completion = ['', '']
let g:ycm_key_list_previous_completion = ['', '']
let g:ycm_key_invoke_completion = '&C-Space&'
& UltiSnips settings
let g:UltiSnipsExpandTrigger=&&tab&&
let g:UltiSnipsJumpForwardTrigger=&&c-b&&
let g:UltiSnipsJumpBackwardTrigger=&&c-z&&
六、Mac OS X下Vim配置
1、MacVim替换
Mac OS X下的配置方法稍有不同,因为Mac下系统自带的Vim是7.3版本,YCM要求Vim 7.3.584+版本,因此我们需要安装MacVim以替代自带的Vim,目前MacVim最新版本是version 7.4.258,完全满足要求。在这里/b4winckler/macvim/releases可以下载到最新的MacVim,下载后的MacVim可以通过如下步骤替换原Vim。
原Vim安装到/usr/bin/vim下。
MacVim解压后如下:
[tony@tonydeair ~/Downloads/MacVim-snapshot-73]$ls
MacVim.app/&&& README.txt&&& mvim*
我们执行以下步骤即可完成vim替换工作:
sudo mv /usr/bin/vim /usr/bin/vim.bak //备份一下原vim
cp mvim /usr/local/bin/
sudo ln -s /usr/local/bin/mvim /usr/bin/vim
2、插件安装和配置
按照上面Linux Vim的插件安装步骤和配置方法我们来配置MacVim,配置后,我们发现除了molokai的colorscheme没有生效外,其余插件工作均正常。而所有.go文件打开,均无molokai方案的颜色高亮,甚至连一般的颜色高亮都没有了。经过不断调试,发现了一个解决方法,在~/.vimrc中添加几行代码即可:
au BufRead,BufNewFile *.go set filetype=go
colorscheme molokai
但这几行配置代码如果放在~/.vimrc的前面,则UltiSnips会无法工作,我将其移到~/.vimrc文件的末尾,这样就不存在冲突了(看来.vimrc的插件配置的先后顺序会对插件功能的正常使用有影响)。漂亮的molokai colorscheme也会展现出来!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:64619次
排名:千里之外
原创:19篇
转载:38篇
(2)(5)(3)(2)(1)(1)(4)(4)(5)(3)(3)(3)(8)(1)(3)(4)(3)(2)当前位置: >
Linux/Windows/Mac下Go语言开发环境搭建
来源:装机员┆发布时间: 14:41┆点击:
装机员为您提供的文章咨询供您阅读,如何使用的方法对您有帮助也请您举手之劳分享给您身份的人。
go语言官网:https://golang.org/
官网下载go1.6.windows-amd64.msi安装文件,安装位置选择默认C:\Go\安装结束后配置环境变量Path: C:\Go\接着创建一个GOPATH环境变量,这个变量很重要,我自己写的代码要放到这个变量中配置的目录中,go编译器才会找到并编译;继续创建一个GOROOT变量,配合go编译器安装的目 GOROOT:C:\Go\;完成以上步骤后,打开命令行输入 # go version,就会出现go编译器的版本号。输入# go env就可以看到正确的go环境。
Linux部署golang,首先请在windows上自行安装SSH远程工具,比如Xshell4等。1.安装mercurial包(mercurial版本管理系统,可以输出hg名字检测是否安装)
sudo apt-get install mercurial 或者# sudo easy_install mercurial2.安装git
sudo apt-get install git3.安装gcc
sudo apt-get install gcc4.下载golang的压缩包
wget /golang/go1.6.linux-amd64.tar.gz
tar -zxvf go1.6.linux-amd64.tar.gz -C /home将解压的文件夹改名为go添加环境变量: # vi /etc/profile在profile里面添加如下内容export GOROOT=/home/goexport PATH=$GOROOT/bin:$PATHexport GOPATH=/home/gopkgGOPATH和GOROOT修改为你的路径即可.然后我们刷新环境变量: #source /etc/profile最后我们验证一下是否安装成功: # go version5.我们也可以不下载golang的压缩包来进行安装
sudo apt-get install golang
go version
官网下载go1.6.darwin-amd64.pkg安装文件进行安装或者安装homebrew后输入命令:
brew update
brew install mercurial
brew install go进行安装。输入# go version,就会出现go编译器的版本号.输入# go env就可以看到正确的go环境.
开发工具我选择IDEA + go plugin
相关网站:/go-lang-plugin-org/go-lang-idea-plugin
安装go plugin:
File -& Setting ,在Settings对话框的左侧选择&Plugins&,然后点击&Browse repositories&,
在Settings对话框的左侧选择&Plugins&,然后点击&Browse repositories&,点击下面的&Manage respositories&按钮。
在&Custom Plugin Repositories&对话框中,点击&+&按钮。
在&Add Repository&对话框中,输入go语言插件的地址:/plugins/alpha/5047,并点击OK按钮。
在&Custom Plugin Repositories&对话框,点击OK按钮。
接着,在&Browse Repositories&对话框的左侧找到&Go&的插件,并点击&Install&按钮。
重启后,就完成了Go语言插件的安装了。
File -& Project Structure,在SDKs那一项添加Go SDK
开始创建第一个go语言程序并运行:
ok, go语言开发环境到这里就搭建完成,enjoy it~
Linux系统入门学习-在Linux中安装Go语言&
Ubuntu 安装Go语言包
《Go语言编程》高清完整版电子书
Go语言并行之美 -- 超越 &Hello World&
我为什么喜欢Go语言
Go语言内存分配器的实现
以上就是装机员给大家介绍的如何使用的方法了,如何使用的方法到这里也全部结束了相信大家对如何使用的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击吧。
本文来自装机员如需转载请注明!
不知道有没朋友跟我一样是 Ubuntu 和 Windows 双系统?今天有朋友问到我,当他从 Ubuntu 系统重新启动到 Windows 时,会发
装机必备软件
装机员系统之家提供、、最新,专为装机修机员奉上最好的、系统、U教平台
请勿发布违反国家法律法规的内容,会员观点不代表本站立场.本站发布的系统与软件仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,
否则后果自负,请支持购买微软正版软件! 如侵犯到您的权益,请及时通知我们,我们会及时处理。安装Golang 1.6及开发环境_Linux教程_Linux公社-Linux系统门户网站
你好,游客
安装Golang 1.6及开发环境
来源:Linux社区&
作者:zolo
安装Golang 1.6及开发环境=====================================& 下载软件& & * go1.4.2.linux-amd64.tar.gz & & * go1.6.2.linux-amd64.tar.gz& & * liteidex29.linux-64-qt4.tar.bz2& & * libpng-1.2.56.tar.xz: http://nchc.dl.sourceforge.net/project/libpng/libpng12/1.2.56/libpng-1.2.56.tar.xz& & 注意: Golang1.5+自举构建,执行src/all.bash需要$HOME/go1.4/bin/go&
&& 安装步骤& & * 安装go1.4& & & & - 解压重名: tar -zvxf go1.4.2.linux-amd64.tar.gz -C ~/ && mv go go1.4& & * 安装go1.6& & & & - 解压: & & & & & & tar -zvxf go1.6.2.linux-amd64.tar.gz -C /usr/local/& & & & - 编译: & & & & & & /usr/local/go/src/all.bash #注意: 该步信赖$HOME/go1.4/bin/go& & & & _ 链接: & & & & & & update-alternatives --install /usr/bin/go go /usr/local/go/bin/go 100& & & & & & update-alternatives --install /usr/bin/godoc godoc /usr/local/go/bin/godoc& & & & & & update-alternatives --install /usr/bin/gofmt gofmt /usr/local/go/bin/gofmt& & & & &
&& & & & - 检测:& & & & & & go version& & & & & & godoc -http=:8080 #注意:linux下1024前的端口要求root权限.& & & & & & 访问http://localhost:8080显示golang documents& &
* 安装liteide:& & & & - 解压:& & & & & & tar -jxvf liteidex29.linux-64-qt4.tar.bz2 -C /usr/local #注意bz2要用j& & & & ! 注意: liteidex29依赖libpng12, 如果系统是libpng15+, 需要自己编译! 方法:& & & & & & xz -d libpng-1.2.56.tar.xz && tar -xvf libpng-1.2.56.tar && cd libpng12 & & & & & & apt-get install zlib1g-dev& & & & & & ./configure #默认安装在/usr/local/lib即可& & & & & & ./make& & & & & & sudo make install& & & & & & sudo ldconfig #加载配置更新,否则提示无法找到libpng12.0.so
本文永久更新链接地址:
相关资讯 & & &
& (01月24日)
& (10/26/:46)
& (01月25日)
& (12/12/:58)
& (10/20/:57)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 linux stm32开发环境 的文章

 

随机推荐