vim如何配置go語言環境

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

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

下面是一步步搭建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 enablefiletype plugin onset numberlet g:go_disable_autoinstall = 0

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

  預設有一些高亮未開啟,在.vimrc使用以下開啟:
let g:go_highlight_functions = 1let g:go_highlight_methods = 1let g:go_highlight_structs = 1let g:go_highlight_operators = 1let g:go_highlight_build_constraints = 1
高亮效果:  

安裝 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>MarkClearnmap mn <Plug>MarkSearchAnyNext #跳轉到任一下一個高亮單詞  nmap mp <Plug>MarkSearchAnyPrevnmap 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使用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.