1. 程式人生 > >GO開發利器vim-go配置

GO開發利器vim-go配置

GO語言的開發工具有很多種,有人喜愛 emacs +spacemacs、有人喜歡atom+go-plus,而我卻獨愛vim-go,今天就大家介紹下linux如何配置go的開發利器vim-go,實現自動格式化程式碼、程式碼補齊、語法高亮等方便使用的功能。

一、安裝vim-go

  1. vim-go下載地址
$ git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go
  1. 安裝和配置Vundle外掛管理器
<1>、安裝rpm包
# yum install -y git curl

<2>、先安裝Vundle外掛管理器
$ git clone https
://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim <3>.參考官方的https://github.com/VundleVim/Vundle.vim,配置.vimrc。這個預設配置裡面,不需要的外掛可以註釋掉。 $ vi ~/.vimrc set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() "
" alternatively, pass a path where Vundle should install plugins " "call vundle#begin('~/some/path/here') " " " let Vundle manage Vundle, required Plugin 'VundleVim/Vundle.vim' " " " The following are examples of different formats supported. " " Keep Plugin commands between vundle#begin/end. " " plugin on GitHub repo "
Plugin 'tpope/vim-fugitive' " " plugin from http://vim-scripts.org/vim/scripts.html " " Plugin 'L9' " " Git plugin not hosted 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 'file:///home/gmarik/path/to/plugin' " " 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/'} " " Install L9 and avoid a Naming conflict if you've already installed a " " different version somewhere else. " " Plugin 'ascenator/L9', {'name': 'newL9'} " Install Vim-go Plugin 'fatih/vim-go' " " All of your Plugins must be added before the following line call vundle#end() " required filetype plugin indent on " required " " To ignore plugin indent changes, instead use: " "filetype plugin on " " " " Brief help " " :PluginList - lists configured plugins " " :PluginInstall - installs plugins; append `!` to update or just " :PluginUpdate " " :PluginSearch foo - searches for foo; append `!` to refresh local cache " " :PluginClean - confirms removal of unused plugins; append `!` to " auto-approve removal " " " " see :h vundle for more details or wiki for FAQ " " Put your non-Plugin stuff after this line

在~/.vimrc的vundle配置裡面加入vim-go
Plugin ‘fatih/vim-go’
儲存退出後,再次啟動vim。
a、用命令:PluginInstall安裝vim-go。
Vundle.vim會在左側開啟一個Vundle Installer Preview子視窗,視窗下方會提示:”Processing ‘fatih/vim-go’”,等待安裝完成後,會顯示Done!這時可以看到~/.vim/bundle下面有個vim-go資料夾。
[[email protected] bundle]cd/.vim/bundle/[app@golangdevbundle] ll
總用量 8
drwxrwxr-x 16 app app 4096 9月 12 09:49 vim-go
drwxrwxr-x 8 app app 4096 9月 12 09:05 Vundle.vim
截圖如下:
這裡寫圖片描述
這裡寫圖片描述

 b、命令列安裝
       $ vim +PluginInstall +qall

編輯hello.go,語法高亮有了, 儲存時自動format(利用$GOBIN/gofmt)也有了,但其他高階功能,比如自動import缺失的 package、自動補齊仍然沒有,我們還要繼續安裝一些二進位制工具。

二、安裝 go.tools Binaries 二進位制工具

    在vim下輸入:GoInstallBinaries 會自動安裝相關工具,安裝後會在GOPATH目錄下的bin資料夾裡面。
    該安裝相關檔案在~/.vim/bundle/vim-go/plugin/go.vim,我們可以看到安裝了下面幾個工具
let s:packages = [
      \ "github.com/nsf/gocode",
      \ "github.com/alecthomas/gometalinter",
      \ "golang.org/x/tools/cmd/goimports",
      \ "golang.org/x/tools/cmd/guru",
      \ "golang.org/x/tools/cmd/gorename",
      \ "github.com/golang/lint/golint",
      \ "github.com/rogpeppe/godef",
      \ "github.com/kisielk/errcheck",
      \ "github.com/jstemmer/gotags",
      \ "github.com/klauspost/asmfmt/cmd/asmfmt",
      \ "github.com/fatih/motion",
      \ "github.com/fatih/gomodifytags",
      \ "github.com/zmb3/gogetdoc",
      \ "github.com/josharian/impl",
      \ "github.com/dominikh/go-tools/cmd/keyify",
      \ ]
     其中有的網址訪問不了,如果安裝失敗,可以到http://www.golangtc.com/download/package搜尋下載,下載後放到GOPATH的src目錄,用go install安裝!安裝後,會在GOPATH目錄下的pkg和bin目錄生成相應的檔案!
     vim-go預設程式碼補全是<C-x> + <C-o>。

再次編輯hello.go:

- 新起一行輸入fmt.,然後ctrl+x, ctrl+o,Vim 會彈出補齊提示下拉框,不過並非實時跟隨的那種補齊,這個補齊是由gocode提供的。
– 輸入一行程式碼:time.Sleep(time.Second),執行:GoImportsVim會自動匯入time包。
– 將游標移到Sleep函式上,執行:GoDef或命令模式下敲入gd,Vim會開啟$GOROOT/src/time/sleep.go中 的Sleep函式的定義。執行:b 1返回到hellogolang.go。
– 執行:GoLint,執行golint在當前Go原始檔上。
– 執行:GoDoc,開啟當前游標對應符號的Go文件。
– 執行:GoVet,在當前目錄下執行go vet在當前Go原始檔上。
– 執行:GoRun,編譯運行當前main package。
– 執行:GoBuild,編譯當前包,這取決於你的原始檔,GoBuild不產生結果檔案。
– 執行:GoInstall,安裝當前包。
– 執行:GoTest,測試你當前路徑下地_test.go檔案。
– 執行:GoCoverage,建立一個測試覆蓋結果檔案,並開啟瀏覽器展示當前包的情況。
– 執行:GoErrCheck,檢查當前包種可能的未捕獲的errors。
– 執行:GoFiles,顯示當前包對應的原始檔列表。
– 執行:GoDeps,顯示當前包的依賴包列表。
– 執行:GoImplements,顯示當前型別實現的interface列表。
– 執行:GoRename [to],將當前游標下的符號替換為[to]。

三、其他外掛

實現功能:實時跟隨的程式碼補齊 + Code Snippet support
  1. 安裝YCM(Your Complete Me) —– bundle安裝
    在~/.vimrc中新增一行:
    Plugin ‘Valloric/YouCompleteMe’
    儲存退出後,再開啟~/.vimrc並執行 :PluginInstall。

  2. 編譯安裝

# yum install build-essential cmake python-dev
$ cd ~/.vim/bundle/ 
$ git clone https://github.com/Valloric/YouCompleteMe.git
$ cd YouCompleteMe/
$ git submodule update --init --recursive
$ cd ~/.vim/bundle/YouCompleteMe
$ ./install.py --gocode-completer  // 對 golang的支援

Q1:YouCompleteMe unavailable : requires Vim 7.4.143

升級vim版本:
# yum install -y ncurses-devel 
# git clone https://github.com/vim/vim.git
# cd vim 
# ./configure  --enable-multibyte --enable-pythoninterp=yes --enable-python3interp=yes
# make && make install 

Q2: YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support

configure 引數加上--enable-pythoninterp=yes --enable-python3interp=yes 引數
# ./configure  --enable-multibyte --enable-pythoninterp=yes --enable-python3interp=yes

Q3:vim 退格鍵(backspace)不能用

編輯~/.vimrc加入下面2行:
$ vi ~/.vimrc
set nocompatible
set backspace=indent,eol,start

四、配置~/.vimrc快捷鍵

便捷 .vimrc,前面講到了vim-go有許多命令,在:xx模式下執行多顯不便,於是你可以定義一些Mappings,比如:
$ vi ~/.vimrc
" set mapleader
let mapleader = ","

" vim-go custom mappings
au FileType go nmap <Leader>s <Plug>(go-implements)
au FileType go nmap <Leader>i <Plug>(go-info)
au FileType go nmap <Leader>gd <Plug>(go-doc)
au FileType go nmap <Leader>gv <Plug>(go-doc-vertical)
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)
au FileType go nmap <Leader>ds <Plug>(go-def-split)
au FileType go nmap <Leader>dv <Plug>(go-def-vertical)
au FileType go nmap <Leader>dt <Plug>(go-def-tab)
au FileType go nmap <Leader>e <Plug>(go-rename)

" vim-go settings
let g:go_fmt_command = "goimports"

參考連結:

相關推薦

GO開發利器vim-go配置

GO語言的開發工具有很多種,有人喜愛 emacs +spacemacs、有人喜歡atom+go-plus,而我卻獨愛vim-go,今天就大家介紹下linux如何配置go的開發利器vim-go,實現自動格式化程式碼、程式碼補齊、語法高亮等方便使用的功能。

Go開發之路 -- Go語言基本語法

1.5 變量交換 數據類型 UNC 賦值 初始 寫法 調用 關鍵字 一. 變量 1.1 變量的聲明 Go 語言的每一個變量都擁有自己的類型,必須經過聲明才能開始用。 標準格式: var 變量名 變量類型 變量的聲明以關鍵字 var 開頭,行尾不需要寫分號

Vim go語言開發環境配置

安裝vim 和 vim-go  sudo apt-get install vim git clone https://github.com/fatih/vim-go.git ~/.vim/bundle/vim-go 安裝Vundle sudo apt-get install g

mac下安裝配置go開發環境

string hello pkg obi cin keyword art ces mac 1、官網下載安裝包(需FQ)   https://storage.googleapis.com/golang/go1.7.darwin-amd64.pkg 2、配置Go環境變量GOPA

Windows下GO開發環境配置

blank 環境配置 div href body ack col window amd64 GO下載 https://golang.org/dl/ IDE-goland下載 http://www.jetbrains.com/go/

windows通過Visual Studio Code中配置GO開發環境(轉)

fin gpe def 微軟 sqs oba 安裝插件 包括 ont 一、GO語言安裝 詳情查看:GO語言下載、安裝、配置 二、GoLang插件介紹 對於Visual Studio Code開發工具,有一款優秀的GoLang插件,它的主頁為:https://gith

在Centos下配置GO開發環境

1、安裝VSCode編輯器 Visual Studio Code 是一個輕量級但功能強大的原始碼編輯器,可在 Windows,macOS 和 Linux 桌面上執行。它內建了對JavaScript,TypeScript和Node.js的支援,併為其他語言(如C ++,C#,

vscode 配置golang go開發環境 IDE(2018年10月)

vscode版本 : VSCodeUserSetup-x64-1.28.1 go sdk : go1.11.1.windows-amd64 我的系統 win7 64 旗艦 go sdk的安裝一路按next就行, 安裝完了,開啟cmd,分別執行兩個命令" go env

vscode 配置go開發環境

go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -v github.com/golang/lint/golint go get -u -v g

在Visual Studio Code中配置GO開發環境

轉自:https://www.cnblogs.com/zsy/archive/2016/02/28/5223957.html一、GO語言安裝二、GoLang外掛介紹這款外掛的特性包括:Colorization 程式碼著彩色Completion Lists 程式碼自動完成(使用

Visual Studio Code --GO開發工具配置

一直在尋找一個趁手的GO語言開發工具,嘗試了很多都不順心,聽beego作者推薦試了一下微軟推出的業界良心Visual Studio Code 來開發做GO開發確實很舒服,今天總結一下Visual St

基於vim搭建Go開發環境

Go作為一門新興語言,發展的如火如荼啊。不過,目前還沒有一個成熟的IDE。本文介紹基於vim搭建Go的開發環境,保證在具有vim的快感的同時,又支援Go的特性。1. Go環境首先,是安裝Go。下載安裝包,解壓,然後設定環境變數GOROOT:指向解壓後的go路徑。GOPATH:

在intellij上配置go開發環境

1、安裝go外掛 Setting–>plugins–>browse repositories,在輸入框中填寫go。 2、手動配置go環境 2-2靠譜的文件 2-3驗證文件 另外一個地方 3、用整合開發環

Go語言 安裝、Notepad++配置Go 開發環境

安裝Go 以window7 環境為例: 下載go語言安裝包https://golang.org/dl/ 選擇go1.4.2.windows-386.msi 版本,直接點選安裝。 配置環境變數: 將C:\Go\bin,加入path環境變數中(預設貌似有了

GoLang之再談Gvim/Vim配置——使用Vundle安裝vim-go

2014-11-09 wcdj 根據Vundle的安裝說明,首先安裝Vundle: $ git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim 然後對.vimrc進行配置,

Windowns環境下配置go開發環境

問題:在windows環境配置好以後,goland工具匯入工程無法編譯問題 答:配置環境變數,新建以下目錄: GOPATH: 專案路徑 GOROOT: go安裝路徑 GOBIN: ../../../bin

Vim Go開發環境搭建

bsp 讀取 share bre 修改 參考 兩個 func 項目 基本搭建流程參考了網上的博文以及Vimgo的Github主頁 博文https://www.cnblogs.com/breg/p/5386365.html Vim-go主頁(我能不能加入項目,做點貢獻呢?

Visual Studio Code 配置Go 開發環境最簡單的方法!!!

lang 方法 導致 分享圖片 src info 國內 golang 失敗 由於大家都知道的原因,在國內如果想訪問go等各種資源,都會遇到某種不可預知的神奇問題。導致在VS Code中安裝 go 各種插件都會失敗。 於是乎,網上就出現了各種各樣的解決方案:什麽手動git

macOS Eclipse配置Go開發環境:安裝goclipse

生成 oar issue 設置 span 參考資料 port 安裝eclipse -i 環境:Mac 10.14.4 安裝Eclipse 1 .官網下載安裝程序 https://www.eclipse.org/downloads/ 2 .執行安裝程序 ecl

vscode 配置 go 開發環境

一、下載vscode並安裝      https://code.visualstudio.