golang下载地址python
https://golang.google.cn/dl/linux
tar -C /usr/local -xzf go1.12.7.linux-amd64.tar.gzc++
// (1)用户级别配置
git
sudo vi $HOME/.profile
github
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
golang
// (2)设置环境变量
vim
export GOROOT=/usr/local/go
curl
export GOPATH=$HOME/go
post
// (3)生效配置
ui
source $HOME/.profile
安装gopm
go get -u github.com/gpmgo/gopm
安装goTools
gopm get -g golang.org/x/tools gopm get -g golang.org/x/lint
gopm get -g golang.org/x/sync/errgroup go install golang.org/x/tools/cmd/guru go install golang.org/x/tools/cmd/gorename go install golang.org/x/tools/cmd/fiximports go install golang.org/x/tools/cmd/gopls go install golang.org/x/tools/cmd/godex
gocode go get -u github.com/nsf/gocode
开启关键字匹配 gocode set propose-builtins true
配置neovim
在 ~/.config/nvim/init.vim 中添加 支持python3
let g:python3_host_prog = '/usr/local/bin/python3'
安装vim-plug
curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
配置
filetype plugin indent on syntax on call plug#begin('~/.config/nvim/plugged) Plug 'fatih/vim-go' call plug#end()
使用命令安装插件
:PlugInstall
安装插件deoplete.nvim
deoplete.nvim
须要 python3
以及 neovim 的 python 模块。
pip3 install neovim
在配置文件加入插件
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'zchee/deoplete-go', { 'do': 'make'}
官方配置
let g:deoplete#enable_at_startup = 1 inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>" inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<cr>" 配置tab选择
安装代码补全神器Ultisnips与snippets
做用:只要敲几个字母,自动生成一大段代码 ,snippets是经常使用补全
Plugin 'SirVer/ultisnips' Plugin 'honza/vim-snippets' 配置 let g:UltiSnipsExpandTrigger="<c-j>" let g:UltiSnipsJumpForwardTrigger="<c-f>" let g:UltiSnipsJumpBackwardTrigger="<c-b>"
语法检查ALE
Plug 'w0rp/ale'
"Ale ""始终开启标志列 let g:ale_sign_column_always = 1 let g:ale_set_highlights = 0 "自定义error和warning图标 let g:ale_sign_error = '?' let g:ale_sign_warning = '?' ""在vim自带的状态栏中整合ale let g:ale_statusline_format = ['? %d', '? %d', '? OK'] "显示Linter名称,出错或警告等相关信息 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' ""普通模式下,sp前往上一个错误或警告,sn前往下一个错误或警告 nmap sp <Plug>(ale_previous_wrap) nmap sn <Plug>(ale_next_wrap) "<Leader>s触发/关闭语法检查 nmap <Leader>s :ALEToggle<CR> ""<Leader>d查看错误或警告的详细信息 nmap <Leader>d :ALEDetail<CR> let g:ale_linters = { \ 'c++': ['clang'], \ 'c': ['clang'], \ 'python': ['pylint'], \ 'go': ['golint', 'go vet', 'go build'], \}
效果
美化插件gruvbox
Plug 'morhetz/gruvbox'
colorscheme gruvbox set background=dark