golang之vim和vscode开发环境
VIM配置
Ubuntu16下vim配置golang语言环境需要高版本VIM(8.0以上)。
1. 可直接源码编译安装最新版vim。
yum remove -y vim-enhanced git clone https://github.com/vim/vim.git git checkout -b v8.2.0340 v8.0.0340 make make install
2. 参考vim-go文档,通过vim包管理工具vim-plug安装vim-go。
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim git clone https://github.com/fatih/vim-go.git ~/.vim/plugged/vim-go
在~/.vimrc中添加:
call plug#begin() Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries' } call plug#end()
3. vim颜色配置。
默认安装后,可能出现错误后颜色会覆盖代码,导致不能阅读,可修改vim的colorscheme。
根据https://github.com/fatih/vim-go/wiki/Tutorial推荐使用https://github.com/fatih/molokai。
直接复制https://github.com/fatih/molokai/colors到~/.vim目录下。
并在~/.vimrc中添加:
let g:rehash256 = 1 let g:molokai_original = 1 colorscheme molokai
4. 其他配置。
~/.vimrc
call plug#begin() Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries' } call plug#end() let g:rehash256=1 let g:molokai_original=1 colorscheme molokai set tabstop=4 set softtabstop=4 set shiftwidth=4 set autoindent set nu let &termencoding=&encoding set fileencodings=utf-8,gbk map <F5> <ESC>:tp<CR> map <F6> <ESC>:tn<CR>
$ tree ~/.vim -L 3 /home/wang/.vim ├── autoload │ └── plug.vim ├── colors │ └── molokai.vim └── plugged ├── molokai │ ├── colors │ ├── LICENSE.md │ └── README.md └── vim-go ├── addon-info.json ├── assets ├── autoload ├── CHANGELOG.md ├── compiler ├── doc ├── Dockerfile ├── ftdetect ├── ftplugin ├── gosnippets ├── indent ├── LICENSE ├── Makefile ├── plugin ├── README.md ├── rplugin ├── scripts ├── syntax ├── templates └── test
5. 使用说明参考:https://github.com/fatih/vim-go/wiki/Tutorial。
在《Go语言项目开发实战》中,提供了使用NeoVim(vim)和SpaceVim(IDE)配置的开发环境。
VS code配置
在主面板下ctrl+k之后ctrl+s可以打开快捷键一览表。
[快捷键官方文档](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf)
Vscode的go插件由微软官方退出, https://github.com/microsoft/vscode-go。Vscode开发go程序时,当编译第一个go程序时,vscode会提示安装多个go插件,建议选择Install All,之后如果对某个package效果不满意可以通过设置进行修改。https://github.com/golang/vscode-go/blob/master/docs/tools.md
ctrl+shift+p输入命令:"Go: Install/Update Tools",手动安装所有插件,默认安装在GOPATH/bin目录下。
Go插件的相关配置(go.buildOnSave, go.lintOnSave, go.testOnSave)在setting中:File -> Preference -> setting ->Extensions -> Go -> Edit in settings.json或命令面板输入Configure Language Specific Settings。
{ "workbench.colorTheme": "Default Dark+", "go.buildOnSave": "off", "go.lintOnSave": "package", "go.vetOnSave": "package", "go.buildTags": "", "go.buildFlags": [], "go.lintFlags": [], "go.vetFlags": [], "go.coverOnSave": false, "go.useCodeSnippetsOnFunctionSuggest": false, "go.formatTool": "gofmt", "go.gocodeAutoBuild": false, "go.lintTool": "staticcheck",
"go.useLanguageServer": true,
"[go]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
},
// Optional: Disable snippets, as they conflict with completion ranking.
"editor.snippetSuggestions": "none",
},
"[go.mod]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
},
},
"go.trace.server": "verbose",
"gopls": {
// Add parameter placeholders when completing a function.
"usePlaceholders": false,
// If true, enable additional analyses with staticcheck.
// Warning: This will significantly increase memory usage.
"staticcheck": false,
},
"go.languageServerFlags": [
"-remote=auto", "-logfile=auto", "-debug=:0", "-rpc.trace",
]
}
此外可以通过extensions安装vim插件,实现vscode中vim编辑。
带参数调试
打开 .vscode 文件夹下的 launch.json 文件,找到 “args” 这一行,在 [ ] 中输入要传入的参数。
注:参数需要包括在双引号 “” 中,多个参数之间用逗号 , 分隔。
{ "version": "0.2.0", "configurations": [ { "name": "golang", "type": "go", "request": "launch", "mode": "auto", //当运行单个文件时{workspaceFolder}可改为{file} "program": "${workspaceFolder}", "env": {}, "args": [] } ] }
问题:
1. Gopls安装完成后提示”couldn’t start client gopls unsupported URI scheme: (gopls only supports file URIs)”
Gopls异常时代码提示和补全会异常,所以gopls要配置正确。
上述问题原因是vscode-go没有打开当前程序的目录,需要在文件夹中打开go程序文件。
参考:
1. https://gitee.com/yuxio/vim-go.git https://github.com/fatih/vim-go/wiki/Tutorial
2. vim安装go插件vim-go和gocode,支持代码高亮、代码提示和语法检查等功能
6. vscode支持go https://geek-docs.com/vscode/vscode-tutorials/vscode-support-go.html