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语言开发环境
地址分享:http://myzitong.com/article/heoods.html