重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

go语言的集成开发环境,Go语言开发环境

如何配置go语言集成开发环境 vim

1、编译vimgdb

目前创新互联公司已为上1000+的企业提供了网站建设、域名、网站空间绵阳服务器托管、企业网站设计、禹州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

下载vimgdb73和vim73

mkdir -p ./tmp

cd tmp

tar zxvf ../vim-7.3.tar.gz

unzip ../vimgdb-for-vim7.3-master.zip

mv vimgdb-for-vim7.3-master vimgdb-for-vim7.3

patch -p0 vimgdb-for-vim7.3/vim73.patch

cd vim73

安装依赖

sudo apt-get install build-essential

sudo apt-get build-dep vim-gtk

sudo apt-get install libncurses5-dev

安装

// 这里直接执行make的操作

make

sudo make install

安装vimgdb runtime

cd ../vimgdb-for-vim7.3

cp vimgdb_runtime ~/.vim/bundle

打开vim

:helptags ~/.vim/bundle/vimgdb_runtime/doc " 生成doc文件

添加配置.vimrc

" vimgdb插件

run macros/gdb_mappings.vim

在vim中执行gdb时,报 “Unable to read from GDB pseudo tty” 的错误,因为没有安装 gdb ,所以安装gdb

sudo apt-get install gdb

2、安装vundle

set up vundle

$ git clone ~/.vim/bundle/vundle

Configure Plugins

在.vimrc文件的开头添加下面的内容,有些不是必须的,可以注掉

set nocompatible " be iMproved, required

filetype off " required

" set the runtime path to include Vundle and initialize

set rtp+=~/.vim/bundle/vundle/

call vundle#rc()

" alternatively, pass a path where Vundle should install plugins

"let path = '~/some/path/here'

"call vundle#rc(path)

" let Vundle manage Vundle, required

Plugin 'gmarik/vundle'

" The following are examples of different formats supported.

" Keep Plugin commands between here and filetype plugin indent on.

" scripts on GitHub repos

Plugin 'tpope/vim-fugitive'

Plugin 'Lokaltog/vim-easymotion'

Plugin 'tpope/vim-rails.git'

" The sparkup vim script is in a subdirectory of this repo called vim.

" Pass the path to set the runtimepath properly.

Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}

" scripts from

Plugin 'L9'

Plugin 'FuzzyFinder'

" scripts not on GitHub

Plugin 'git://git.wincent.com/command-t.git'

" git repos on your local machine (i.e. when working on your own plugin)

Plugin ''

" ...

filetype plugin indent on " required

" To ignore plugin indent changes, instead use:

"filetype plugin on

"

" Brief help

" : PluginList - list configured plugins

" : PluginInstall(!) - install (update) plugins

" : PluginSearch(!) foo - search (or refresh cache first) for foo

" : PluginClean(!) - confirm (or auto-approve) removal of unused plugins

"

" see :h vundle for more details or wiki for FAQ

" NOTE: comments after Plugin commands are not allowed.

" Put your stuff after this line

Install Plugins

Launch vim and run

: PluginInstall

vim +PluginInstall +qall

3、官方vim-lang插件

Config vim file .vimrc,Add content bellow in bottom of the file

" 官方的插件

" Some Linux distributions set filetype in /etc/vimrc.

" Clear filetype flags before changing runtimepath to force Vim to

" reload them.

filetype off

filetype plugin indent off

set runtimepath+=$GOROOT/misc/vim

filetype plugin indent on

syntax on

autocmd FileType go autocmd BufWritePre Fmt

4、代码补全的插件gocode

配置go的环境变量,比如我的配置,GOPATH变量是必须要配置的,PATH中必须把GOPATH的bin也添加进去,否则没有自动提示,会提示找不到模式

export GOROOT=/usr/local/go

export GOPATH=/data/app/gopath

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

Set up gocode

Then you need to get the appropriate version of the gocode, for 6g/8g/5g compiler you can do this:

go get -u github.com/nsf/gocode (-u flag for "update")

Configure vim in .vimrc file

Plugin 'nsf/gocode', {'rtp': 'vim/'}

Install Plugins

Launch vim and run

: PluginInstall

vim +PluginInstall +qall

写一个helloword程序,输入fmt后按C-xC-o如果能看到函数的声明展示出来,说明安装是正确的。

4、代码跳转提示godef

Set up godef

go get -v code.google.com/p/rog-go/exp/cmd/godef

go install -v code.google.com/p/rog-go/exp/cmd/godef

git clone ~/.vim/bundle/vim-godef

Configure vim in .vimrc file

Bundle 'dgryski/vim-godef'

Install Plugins

Launch vim and run

: PluginInstall

vim +PluginInstall +qall

5、代码结构提示gotags

Set up gotags

go get -u github.com/jstemmer/gotags

Put the following configuration in your vimrc:

Bundle 'majutsushi/tagbar'

nmap :TagbarToggle

let g:tagbar_type_go = {

\ 'ctagstype' : 'go',

\ 'kinds' : [

\ 'p:package',

\ 'i:imports:1',

\ 'c:constants',

\ 'v:variables',

\ 't:types',

\ 'n:interfaces',

\ 'w:fields',

\ 'e:embedded',

\ 'm:methods',

\ 'r:constructor',

\ 'f:functions'

\ ],

\ 'sro' : '.',

\ 'kind2scope' : {

\ 't' : 'ctype',

\ 'n' : 'ntype'

\ },

\ 'scope2kind' : {

\ 'ctype' : 't',

\ 'ntype' : 'n'

\ },

\ 'ctagsbin' : 'gotags',

\ 'ctagsargs' : '-sort -silent'

\ }

命令模式下按在右边就会显示当前文件下的函数名,结构体名等等,光标放到相应的tag上,按回车可以快速跳到程序中的相应位置。

再次按会关闭tag窗口。

PS:本地的.vimrc的配置

" 插件管理器 vundle

set nocompatible " be iMproved, required

filetype off " required

" set the runtime path to include Vundle and initialize

set rtp+=~/.vim/bundle/vundle/

call vundle#rc()

" alternatively, pass a path where Vundle should install plugins

"let path = '~/some/path/here'

"call vundle#rc(path)

" let Vundle manage Vundle, required

Plugin 'gmarik/vundle'

" The following are examples of different formats supported.

" Keep Plugin commands between here and filetype plugin indent on.

" scripts on GitHub repos

" Plugin 'tpope/vim-fugitive'

" Plugin 'Lokaltog/vim-easymotion'

" Plugin 'tpope/vim-rails.git'

" The sparkup vim script is in a subdirectory of this repo called vim.

" Pass the path to set the runtimepath properly.

" Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}

" scripts from

" Plugin 'L9'

" Plugin 'FuzzyFinder'

" scripts not on GitHub

" Plugin 'git://git.wincent.com/command-t.git'

" git repos on your local machine (i.e. when working on your own plugin)

" Plugin ''

" ...

"

filetype plugin indent on " required

" To ignore plugin indent changes, instead use:

" filetype plugin on

"

" Brief help

" : PluginList - list configured plugins

" : PluginInstall(!) - install (update) plugins

" : PluginSearch(!) foo - search (or refresh cache first) for foo

" : PluginClean(!) - confirm (or auto-approve) removal of unused plugins

"

" see :h vundle for more details or wiki for FAQ

" NOTE: comments after Plugin commands are not allowed.

" Put your stuff after this line

syntax on

" ********************************************************************

" 这里省略了其它不相关的插件

" vimgdb插件

run macros/gdb_mappings.vim

" 官方的插件

" Some Linux distributions set filetype in /etc/vimrc.

" Clear filetype flags before changing runtimepath to force Vim to

" reload them.

filetype off

filetype plugin indent off

set runtimepath+=$GOROOT/misc/vim

filetype plugin indent on

syntax on

autocmd FileType go autocmd BufWritePre buffer Fmt

" 代码补全的插件

Bundle 'Blackrush/vim-gocode'

" 代码跳转提示

Bundle 'dgryski/vim-godef'

" 代码结构提示

Bundle 'majutsushi/tagbar'

nmap F8 :TagbarToggleCR

let g:tagbar_type_go = {

\ 'ctagstype' : 'go',

\ 'kinds' : [

\ 'p:package',

\ 'i:imports:1',

\ 'c:constants',

\ 'v:variables',

\ 't:types',

\ 'n:interfaces',

\ 'w:fields',

\ 'e:embedded',

\ 'm:methods',

\ 'r:constructor',

\ 'f:functions'

\ ],

\ 'sro' : '.',

\ 'kind2scope' : {

\ 't' : 'ctype',

\ 'n' : 'ntype'

\ },

\ 'scope2kind' : {

\ 'ctype' : 't',

\ 'ntype' : 'n'

\ },

\ 'ctagsbin' : 'gotags',

\ 'ctagsargs' : '-sort -silent'

\ }

LiteIDE使用

LiteIDE是一款开源,跨平台的轻量级Go语言集成开发环境。操作简单,提示迅速!当然不足之处也有很多,不过除了golad之外,个人觉得比vscode,eclipse等用的更舒心一点(ps:指的是编写golang,每个人的感受不一样,勿喷)

目前本人使用的LiteIDE版本号是:x36.1

其中让我感受不是很好的两个点是:1.没有自动go lint检测,需要手动。2.更改键盘映射不能捕获按键的内容,需要自己粘贴复制比方说Ctrl+C之类的上去,如果不能接受这两点需要考虑考虑。当然也有可能是我玩的不够透彻,如果有人知道,请评论告知,感激不敬:)。

那么,接下来就让我们来学习一下LiteIDE这款国人开发的编辑器的简单用法:

当我们使用一款IDE的时候,首先当然是配置一下环境,其次是快捷键,界面布局之类的了。所以,我们先来

1.配置环境:

LiteIDE给我们提供了多种的环境,目的是为了让我们能将程序编译成不同的系统所能执行的文件,例如我目前使用的是windows64系统,而且我的服务器也是windows64,那我只需要选择system的环境就可以,这样在我执行编译执行后,编译器将会自动生成windows中可执行的.exe文件。

1.1配置管理GOPATH/Modules/GOPROXY

在我们项目是需要使用GOPATH或者是Modules的时候可以点击旁边的倒三角选项,on表示使用mod,off表示不使用,auto表示根据检测,有的话使用。

底下的GOPROXY可以设置代理,毕竟我们大中华的墙不设置代理还是很给力得。设置代理得另外一种方法是点击 工具-编辑当前环境,然后在里面输入代理,我一般用得是阿里云得代理:GOPROXY=,编辑当前环境得作用其实就跟我们在命令行中输入go env然后去设置是一个道理。

2.设置快捷键

点击查看-选项-LiteApp中点击键盘,然后就可以设置快捷键了,当然目前我这个版本需要粘贴复制进去

3.使用

3.1现在我们一般都是使用mod来管理,当然首先要设置GOPATH了。

将自己本地得GOPATH添加进去就可以了,如图所示可以添加多个。

3.2编辑器自动生成go.mod文件

点击M键,会弹出下拉菜单,选择go module init将会自动生成mod文件

3.3获取第三方包

可以使用M里面得go mod tidy也可以使用G键里面得Get按钮

目前记起来得就这么多,后续想起来后再添加。::)

Github上的一些高分Qt开源项目

TileMap

著名的TileMap编辑器,做2D游戏开发的一定不会陌生。

litego

Go语言的集成开发环境。

Clementine Music Player

功能很完善且跨平台支持做得很好的音乐播放器,完成度高,跨平台项目可以参考它。

QtAV

官网:

FFmpeg的Qt封装,国人的作品,为你点赞!

shotcut (视频编辑软件)

产品级的开源作品,值得研究。

qTox

功能强大的IM客户端

livehelperchat

livehelperchat (IM客户端):

基于XMPP 协议的聊天客户端

qupzilla

产品级的开源作品,值得研究。

otter-browser

otter-browser (另一款Qt开发的Web浏览器):

CuteMarkEd (Qt开发的Markdown编辑器)

Rythem (Qt版的fiddler)

网络文件传输客户端

官网:[ ]( )

ProjectTox-Qt-GUI (简版IM)

screencloud (截屏分享工具)

notes (记事本)

QFramer :(UI封装,国人作品)

OAuth 2.0 for Qt

JQTools , Jason Qt Tools 的简称

QtAwesome (Font Awesome support for Qt applications)

PacketSender

用于发送/接收TCP,UDP,SSL的网络工具,目前已经有桌面版、Android版本、IOS版本

Network utility for sending / receiving TCP, UDP, SSL

QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)

一款免费、开源、跨平台(支持Linux、Windows、Mac)的地理信息系统(GIS)。

QtCipherSqlitePlugin

带有加密功能的 SQLite Qt 插件-QtCipherSqlitePlugin

A Qt plugin for ciphered SQLite.

RedisDesktopManager

跨平台开源 Redis ® 管理工具

RDM 是易于使用的 GUI 工具,可用于 Windows,Linux,MacOS 和 iPadOS。

Cross-platform GUI management tool for Redis

刘典武老师的CSDN:

刘典武老师的Github:


网页标题:go语言的集成开发环境,Go语言开发环境
URL地址:http://cqcxhl.com/article/heoods.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP