Quantcast
Channel: 看得透又看得远者prevail. ppt.cc/flUmLx ppt.cc/fqtgqx ppt.cc/fZsXUx ppt.cc/fhWnZx ppt.cc/fnrkVx ppt.cc/f2CBVx
Viewing all articles
Browse latest Browse all 20528

Go的开发工具

$
0
0
介绍几个开发工具,它们都具有自动化提示,自动化fmt功能。因为它们都是跨平台的,所以安装步骤之类的都是通用的。
LiteIDE

LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),由visualfc编写。

图1.4 LiteIDE主界面

LiteIDE主要特点:

    支持主流操作系统
        Windows
        Linux
        MacOS X
    Go编译环境管理和切换
        管理和切换多个Go编译环境
        支持Go语言交叉编译
    与Go标准一致的项目管理方式
        基于GOPATH的包浏览器
        基于GOPATH的编译系统
        基于GOPATH的Api文档检索
    Go语言的编辑支持
        类浏览器和大纲显示
        Gocode(代码自动完成工具)的完美支持
        Go语言文档查看和Api快速检索
        代码表达式信息显示F1
        源代码定义跳转支持F2
        Gdb断点和调试支持
        gofmt自动格式化支持
    其他特征
        支持多国语言界面显示
        完全插件体系结构
        支持编辑器配色方案
        基于Kate的语法显示支持
        基于全文的单词自动完成
        支持键盘快捷键绑定方案
        Markdown文档编辑支持
            实时预览和同步显示
            自定义CSS显示
            可导出HTML和PDF文档
            批量转换/合并为HTML/PDF文档

LiteIDE安装配置

    LiteIDE安装
        下载地址 http://code.google.com/p/golangide
        源码地址 https://github.com/visualfc/liteide
    首先安装好Go语言环境,然后根据操作系统下载LiteIDE对应的压缩文件直接解压即可使用。
    安装Gocode 启用Go语言的输入自动完成需要安装Gocode:

    go get -u github.com/nsf/gocode

    编译环境设置 根据自身系统要求切换和配置LiteIDE当前使用的环境变量。
    以Windows操作系统,64位Go语言为例, 工具栏的环境配置中选择win64,点编辑环境,进入LiteIDE编辑win64.env文件

    GOROOT=c:\go
    GOBIN=
    GOARCH=amd64
    GOOS=windows
    CGO_ENABLED=1

    PATH=%GOBIN%;%GOROOT%\bin;%PATH%
    。。。

    将其中的GOROOT=c:\go修改为当前Go安装路径,存盘即可,如果有MinGW64,可以将c:\MinGW64\bin加入PATH中以便go调用gcc支持CGO编译。
    以Linux操作系统,64位Go语言为例, 工具栏的环境配置中选择linux64,点编辑环境,进入LiteIDE编辑linux64.env文件

    GOROOT=$HOME/go
    GOBIN=
    GOARCH=amd64
    GOOS=linux
    CGO_ENABLED=1

    PATH=$GOBIN:$GOROOT/bin:$PATH
    。。。

    将其中的GOROOT=$HOME/go修改为当前Go安装路径,存盘即可。
    GOPATH设置 Go语言的工具链使用GOPATH设置,是Go语言开发的项目路径列表,在命令行中输入(在LiteIDE中也可以Ctrl+,直接输入)go help gopath快速查看GOPATH文档。
    在LiteIDE中可以方便的查看和设置GOPATH。通过菜单-查看-GOPATH设置,可以查看系统中已存在的GOPATH列表, 同时可根据需要添加项目目录到自定义GOPATH列表中。

Sublime Text

这里将介绍Sublime Text 2(以下简称Sublime)+GoSublime+gocode+MarGo的组合,那么为什么选择这个组合呢?

    自动化提示代码,如下图所示
    图1.5 sublime自动化提示界面
    保存的时候自动格式化代码,让您编写的代码更加美观,符合Go的标准。
    支持项目管理
    图1.6 sublime项目管理界面
    支持语法高亮
    Sublime Text 2可免费使用,只是保存次数达到一定数量之后就会提示是否购买,点击取消继续用,和正式注册版本没有任何区别。

接下来就开始讲如何安装,下载Sublime

根据自己相应的系统下载相应的版本,然后打开Sublime,对于不熟悉Sublime的同学可以先看一下这篇文章Sublime Text 2 入门及技巧

    打开之后安装 Package Control:Ctrl+` 打开命令行,执行如下代码:

    import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace('','%20')).read()); print 'Please restart Sublime Text to finish installation'

    这个时候重启一下Sublime,可以发现在在菜单栏多了一个如下的栏目,说明Package Control已经安装成功了。

    图1.7 sublime包管理
    安装完之后就可以安装Sublime的插件了。需安装GoSublime、SidebarEnhancements和Go Build,安装插件之后记得重启Sublime生效,Ctrl+Shift+p打开Package Controll 输入pcip(即“Package Control: Install Package”的缩写)。 这个时候看左下角显示正在读取包数据,完成之后出现如下界面

    图1.8 sublime安装插件界面
    这个时候输入GoSublime,按确定就开始安装了。同理应用于SidebarEnhancements和Go Build。
    验证是否安装成功,你可以打开Sublime,打开main.go,看看语法是不是高亮了,输入import是不是自动化提示了,import "fmt"之后,输入fmt.是不是自动化提示有函数了。 如果已经出现这个提示,那说明你已经安装完成了,并且完成了自动提示。
    如果没有出现这样的提示,一般就是你的$PATH没有配置正确。你可以打开终端,输入gocode,是不是能够正确运行,如果不行就说明$PATH没有配置正确。
    MacOS下已经设置了$GOROOT, $GOPATH, $GOBIN,还是没有自动提示怎么办。 请在sublime中使用command + 9, 然后输入env检查$PATH, GOROOT, $GOPATH, $GOBIN等变量, 如果没有请采用下面的方法。
    首先建立下面的连接, 然后从Terminal中直接启动sublime
    ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/local/bin/sublime
    项目支持,让sublime支持项目本身的pkg库提示,有两种基本的实现 一种为设定 gosublime 插件的 Setting - user 配置

    {
        "env": { "GOPATH": "$HOME/golang:$GS_GOPATH" }
    }

    $GS_GOPATH 是 gosublime 的伪环境变量, 它自动寻找 .go文件所在的 ~/go/src 来推测 ~/go/ 为项目位置, 从而自动适应 GOPATH 。
    另外一种为保存sublime 项目 , 修改 project_name.sublime-project 添加节点

    "settings": {
        "GoSublime": {
            "env": {
                "GOPATH": "$HOME/golang/pwd" // 此处修改为项目路径
            }
        }
    },

    "folders"{...

Vim

Vim是从vi发展出来的一个文本编辑器, 代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

图1.9 VIM编辑器自动化提示Go界面

    配置vim高亮显示

    cp -r $GOROOT/misc/vim/* ~/.vim/

    在~/.vimrc文件中增加语法高亮显示

    filetype plugin indent on
    syntax on

    安装Gocode

    go get -u github.com/nsf/gocode

    gocode默认安装到$GOBIN下面。
    配置Gocode

    ~ cd $GOPATH/src/github.com/nsf/gocode/vim
    ~ ./update.bash
    ~ gocode set propose-builtins true
    propose-builtins true
    ~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64"
    lib-path "/home/border/gocode/pkg/linux_amd64"
    ~ gocode set
    propose-builtins true
    lib-path "/home/border/gocode/pkg/linux_amd64"

        gocode set里面的两个参数的含意说明:

        propose-builtins:是否自动提示Go的内置函数、类型和常量,默认为false,不提示。

        lib-path:默认情况下,gocode只会搜索**$GOPATH/pkg/$GOOS_$GOARCH** 和 $GOROOT/pkg/$GOOS_$GOARCH目录下的包,当然这个设置就是可以设置我们额外的lib能访问的路径

    恭喜你,安装完成,你现在可以使用:e main.go体验一下开发Go的乐趣。

更多VIM 設定, 可參考連結
Emacs

Emacs传说中的神器,她不仅仅是一个编辑器,它是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的操作系统中。

图1.10 Emacs编辑Go主界面

    配置Emacs高亮显示

    cp $GOROOT/misc/emacs/* ~/.emacs.d/

    安装Gocode

    go get -u github.com/nsf/gocode

    gocode默认安装到$GOBIN里面下面。
    配置Gocode

    ~ cd $GOPATH/src/github.com/nsf/gocode/emacs
    ~ cp go-autocomplete.el ~/.emacs.d/
    ~ gocode set propose-builtins true
    propose-builtins true
    ~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64" // 换为你自己的路径
    lib-path "/home/border/gocode/pkg/linux_amd64"
    ~ gocode set
    propose-builtins true
    lib-path "/home/border/gocode/pkg/linux_amd64"

    需要安装 Auto Completion 下载AutoComplete并解压
    ~ make install DIR=$HOME/.emacs.d/auto-complete
    配置~/.emacs文件

    ;;auto-complete
    (require 'auto-complete-config)
    (add-to-list 'ac-dictionary-directories "~/.emacs.d/auto-complete/ac-dict")
    (ac-config-default)
    (local-set-key (kbd "M-/") 'semantic-complete-analyze-inline)
    (local-set-key "."'semantic-complete-self-insert)
    (local-set-key ">"'semantic-complete-self-insert)

    详细信息参考: http://www.emacswiki.org/emacs/AutoComplete
    配置.emacs

    ;; golang mode
    (require 'go-mode-load)
    (require 'go-autocomplete)
    ;; speedbar
    ;; (speedbar 1)
    (speedbar-add-supported-extension ".go")
    (add-hook
    'go-mode-hook
    '(lambda ()
        ;; gocode
        (auto-complete-mode 1)
        (setq ac-sources '(ac-source-go))
        ;; Imenu & Speedbar
        (setq imenu-generic-expression
            '(("type""^type *\\([^ \t\n\r\f]*\\)" 1)
            ("func""^func *\\(.*\\) {" 1)))
        (imenu-add-to-menubar "Index")
        ;; Outline mode
        (make-local-variable 'outline-regexp)
        (setq outline-regexp "//\\.\\|//[^\r\n\f][^\r\n\f]\\|pack\\|func\\|impo\\|cons\\|var.\\|type\\|\t\t*....")
        (outline-minor-mode 1)
        (local-set-key "\M-a"'outline-previous-visible-heading)
        (local-set-key "\M-e"'outline-next-visible-heading)
        ;; Menu bar
        (require 'easymenu)
        (defconst go-hooked-menu
            '("Go tools"
            ["Go run buffer" go t]
            ["Go reformat buffer" go-fmt-buffer t]
            ["Go check buffer" go-fix-buffer t]))
        (easy-menu-define
            go-added-menu
            (current-local-map)
            "Go tools"
            go-hooked-menu)

        ;; Other
        (setq show-trailing-whitespace t)
        ))
    ;; helper function
    (defun go ()
        "run current buffer"
        (interactive)
        (compile (concat "go run " (buffer-file-name))))

    ;; helper function
    (defun go-fmt-buffer ()
        "run gofmt on current buffer"
        (interactive)
        (if buffer-read-only
        (progn
            (ding)
            (message "Buffer is read only"))
        (let ((p (line-number-at-pos))
        (filename (buffer-file-name))
        (old-max-mini-window-height max-mini-window-height))
            (show-all)
            (if (get-buffer "*Go Reformat Errors*")
        (progn
            (delete-windows-on "*Go Reformat Errors*")
            (kill-buffer "*Go Reformat Errors*")))
            (setq max-mini-window-height 1)
            (if (= 0 (shell-command-on-region (point-min) (point-max) "gofmt""*Go Reformat Output*" nil "*Go Reformat Errors*" t))
        (progn
            (erase-buffer)
            (insert-buffer-substring "*Go Reformat Output*")
            (goto-char (point-min))
            (forward-line (1- p)))
        (with-current-buffer "*Go Reformat Errors*"
        (progn
            (goto-char (point-min))
            (while (re-search-forward "<standard input>" nil t)
            (replace-match filename))
            (goto-char (point-min))
            (compilation-mode))))
            (setq max-mini-window-height old-max-mini-window-height)
            (delete-windows-on "*Go Reformat Output*")
            (kill-buffer "*Go Reformat Output*"))))
    ;; helper function
    (defun go-fix-buffer ()
        "run gofix on current buffer"
        (interactive)
        (show-all)
        (shell-command-on-region (point-min) (point-max) "go tool fix -diff"))

    恭喜你,你现在可以体验在神器中开发Go的乐趣。默认speedbar是关闭的,如果打开需要把 ;; (speedbar 1) 前面的注释去掉,或者也可以通过 M-x speedbar 手动开启。

Eclipse

Eclipse也是非常常用的开发利器,以下介绍如何使用Eclipse来编写Go程序。

图1.11 Eclipse编辑Go的主界面

    首先下载并安装好Eclipse
    下载goclipse插件 http://code.google.com/p/goclipse/wiki/InstallationInstructions
    下载gocode,用于go的代码补全提示 gocode的github地址:

    https://github.com/nsf/gocode

    在windows下要安装git,通常用msysgit
    再在cmd下安装:

    go get -u github.com/nsf/gocode

    也可以下载代码,直接用go build来编译,会生成gocode.exe
    下载MinGW并按要求装好
    配置插件 Windows->Reference->Go
    (1).配置Go的编译器

    图1.12 设置Go的一些基础信息
    (2).配置Gocode(可选,代码补全),设置Gocode路径为之前生成的gocode.exe文件

    图1.13 设置gocode信息
    (3).配置GDB(可选,做调试用),设置GDB路径为MingW安装目录下的gdb.exe文件

    图1.14 设置GDB信息
    测试是否成功 新建一个go工程,再建立一个hello.go。如下图:

    图1.15 新建项目编辑文件
    调试如下(要在console中用输入命令来调试):

    图1.16 调试Go程序

IntelliJ IDEA

熟悉Java的读者应该对于idea不陌生,idea是通过一个插件来支持go语言的高亮语法,代码提示和重构实现。

    先下载idea,idea支持多平台:win,mac,linux,如果有钱就买个正式版,如果不行就使用社区免费版,对于只是开发Go语言来说免费版足够用了
    安装Go插件,点击菜单File中的Setting,找到Plugins,点击,Broswer repo按钮。国内的用户可能会报错,自己解决哈。
    这时候会看见很多插件,搜索找到Golang,双击,download and install。等到golang那一行后面出现Downloaded标志后,点OK。
    然后点 Apply .这时候IDE会要求你重启。
    重启完毕后,创建新项目会发现已经可以创建golang项目了:
    下一步,会要求你输入 go sdk的位置,一般都安装在C:\Go,linux和mac根据自己的安装目录设置,选中目录确定,就可以了。

from  https://github.com/astaxie

Viewing all articles
Browse latest Browse all 20528

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>