vim如何配置go語言環境


go語言沒有如source insight般優秀的編輯器,試用了多種,vim算最好的,其次可以用liteide(有反查變量函數引用點、修改行變色功能),兩者可配合使用。

更新:最好的是idea+go插件

下面是一步步搭建vim go語言編輯環境的過程。

ubuntu為例,前提:go開發環境配置好、git安裝好。

 

安裝 Pathogen

  1. 前往http://www.vim.org/scripts/script.php?script_id=2332,找到下方的最新版 Package ZIP 包下載鏈接;

  2. 下載解壓后你會得到一個名稱為 autoload 的目錄,將目錄下的文件 pathogen.vim 拷貝至 ~/.vim/autoload/pathogen.vim

  3. 編輯 ~/.vimrc 文件,在頂部加入行 call pathogen#infect()

安裝 VIM-GO 插件

裝好了插件管理器,就可以開始安裝我們想要的插件了。

  1. 進入目錄 ~/.vim/bundle 后執行命令 git clone https://github.com/fatih/vim-go.git
  2. 編輯 ~/.vimrc 文件,加入以下內容(最后一行用於禁止自動下載):
    syntax enable
    filetype plugin on
    set number
    let g:go_disable_autoinstall = 0

    此時,插件本身已經安裝完成,可以根據 github.com/fatih/vim-go 的說明進行使用,其中要指出的是 <C-x><C-o> 為代碼補全提示,且一般需要在輸入 . 操作符之后使用。

  默認有一些高亮未打開,在.vimrc使用以下打開:
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1
高亮效果:
 
在安裝完后,打開vim,輸入:goInstallBinaries安裝各插件。
再在.vimrc中加一行
let g:go_fmt_command = "goimports"
自動import對應文件。
 

安裝 neocomplete

如果想要實時的代碼補全提示,可以通過安裝 neocomplete 插件來實現,不過它對 VIM 的版本有比較高的要求,具體可以查看它的主頁 github.com/Shougo/neocomplete.vim

  1. 進入目錄 ~/.vim/bundle 后執行命令 git clone https://github.com/Shougo/neocomplete.vim.git
  2. 編輯 ~/.vimrc 文件,加入行 let g:neocomplete#enable_at_startup = 1。這樣就能在啟動 VIM 時自動開啟實時補全功能。

 

安裝ctags與gotags

  1. sudo apt-get install ctags,然后 go get -u github.com/jstemmer/gotags 安裝 Go 語言的相關解析器。
  2. ~/.vimrc 文件加入以下內容:
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'
\ }

使用:光標在某變量或函數上,輸入gd跳轉。ctrl+o返回



安裝tagbar

  1. 裝 tagbar 插件了,和安裝 VIM-GO 一樣,首先進入 ~/.vim/bundle 目錄。然后執行 git clone https://github.com/majutsushi/tagbar.git

  2. 編輯 ~/.vimrc 文件,加入行 nmap <F8> :TagbarToggle<CR>。這是個快捷鍵映射,你可以把 F8 換成任意的。

 

安裝nerdtree

  1. 進入目錄 ~/.vim/bundle 后執行命令 git clone https://github.com/scrooloose/nerdtree.git

  2. 編輯 ~/.vimrc 文件,加入行 map <F7> :NERDTreeToggle<CR>。如此一來,當你需要瀏覽目錄的時候,就可以使用快捷鍵 <Ctrl+n> 來調出瀏覽窗口了。

 

 

安裝mark.vim

 

從http://www.vim.org/scripts/script.php?script_id=2666下載,用vim打開后輸入:so %即可,詳見:h vimball

 
 在.vimrc中加入以下進行使用:光標在某單詞上,ml高亮單詞。mf在同單詞間跳轉,mn跳轉到下一個任意高亮單詞。
nmap ml <Plug>MarkSet #高亮或反高亮一個單詞  
nmap md <Plug>MarkClear
nmap mn <Plug>MarkSearchAnyNext #跳轉到任一下一個高亮單詞  
nmap mp <Plug>MarkSearchAnyPrev
nmap mf <Plug>MarkSearchCurrentNext #跳轉到當前高亮的下一個單詞  
nmap mb <Plug>MarkSearchCurrentPrev 
 
 
 

安裝visualmask

名稱: visualmask
下載地址:

http://www.vim.org/scripts/script.php?script_id=1026

安裝: 把下載下來的 visualmask.vim 放到 $HOME/.vim/plugin 目錄下。
幫助: 見 visualmask.vim 的開頭部分。

普通模式下按 ctrl+F2 或者 mm 即可進行設置高亮書簽;按 F2 或 Shift+F2 進行跳躍;將光標移動到書簽上,再按 ctrl+F2 或 mm 取消該書簽。

使用的過程中遇到一個問題,每次添加書簽的時候都會提示:E197: Cannot set language to "en_US"。將 visualmask.vim 的第55行:

exec ":lan mes en_US"

   改成以下即可解決:

exec ":lan mes en_US.utf8"g

 

 

安裝Ack

先裝ack-grep, sudo apt-get install ack-grep

git clone https://github.com/mileszs/ack.vim.git ~/.vim/bundle/ack.vim

vimrc中加入 :

map <F4> :Ack

光標停留在某函數或變量名上,按F4回車,即可全局搜索調用處

 
 

ctrlP找文件快捷

http://www.vim.org/scripts/download_script.php?src_id=19448

直接<Ctrl + p>,輸入文件名,可像sublime一樣快速定位文件。

 
 
安裝了以上插件,作為編輯器已經夠用,基本可以無障礙編輯go代碼。但對於代碼走讀,vim不能使用鼠標和圖形是天生的殘缺,無法像source insight樣生成調用關系圖,對於走讀代碼來說效率較低,只能等待source insight支持go語言。
 
另:liteIDE是支持找出函數調用點的編輯工具,同時也支持編輯行變色,清楚顯示已修改代碼。但引用關系只能找一層,無法看調用樹,可配合vim使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM