1. 程式人生 > >VIM外掛管理

VIM外掛管理

vim for golang

還在抱怨vim沒有好用的IDE嗎?本文介紹一款vim外掛管理利器Vundle,以及常用的vim外掛。

  • vim外掛管理器Vundle
  • 常用的vim外掛

前期準備:

  1. 安裝vim
sudo apt-get install vim
  1. 安裝go
sudo apt install golang-go
  1. go環境配置
    go安裝好了,可以用go env看一下環境變數。
  • GOROOT: 就是go的安裝目錄,一般不用改
  • GOPATH: 可以理解為工作目錄
  • GOBIN:
    GOPATH目錄下,一般有三個子目錄
    —bin:可執行檔案路徑
    —pkg:golang編譯包時,生成的.a檔案目錄
    —src:原始碼目錄。

在~/目錄下,把這必要環境變數寫到檔案.bash_profile中,如果沒有.bash_profile,建立一個。

export GOPATH=/home/zdchu/go/gopath
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

使配置生效:

source ~/.bash_profile

一、vim外掛管理器Vundle

Vundle是基於Git倉庫的外掛管理軟體。Vundle將外掛的安裝簡化為類似yum軟體安裝的過程
只要:PluginInstall外掛就安裝完了,:PluginClean之後外掛就解除安裝了。
1. Vundle安裝

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

2. vimrc配置
在.vimrc末尾,加上vundle配置:

set nocompatible              " be iMproved, required
filetype off                  " required
" 啟用vundle來管理vim外掛
set rtp+=~/.vim/bundle/Vundle.vim

" vundle 管理的外掛列表須位於 vundle#begin() 和 vundle#end() 之間
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
call vundle#end()
filetype plugin on

二、常用的vim外掛

1. NERDTree------>檔案目錄樹

  • 簡介
    NERDTree是一個針對資料夾以目錄樹的形式呈現的外掛。

  • 配置

Plugin 'scrooloose/nerdtree'  
map <F7> :NERDTreeToggle<CR>   "F7開啟NERDTree
let NERDTreeWinSize = 25       "視窗大小
let g:NERDTreeWinPos="left"    "視窗在左側

2. vim-go------>強大到可怕

Plugin 'fatih/vim-go'

安裝好vim-go後,開啟.go檔案時,基礎功能如語法高亮有了,儲存時自動gofmt也有了,一些高階功能如自動Import缺失的package,自動補全,函式跳轉等功能還沒有,需要安裝vim-go依賴庫

  • vim-go依賴庫
    用命令 :GoInstallBinaries安裝。如果已經安裝好了,可以用:GoUpdateBinaries更新。
    在國內,一般是翻牆才能成功安裝。
    解決辦法:先下載工具包,再安裝
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/tools.git
git clone https://github.com/golang/lint.git
:GoInstallBinaries

成功安裝在GOAPTH/bin目錄下。
注:我們也可以去https://gopm.io/這裡下載包。
強大的指導手冊,一定要看哦
以上配置好,函式跳轉godef等強大功能就可以用啦,但是你會發現函式和例項都是一個顏色,不能一眼就看出來哪個是函式,以下是高階配置

在這裡插入程式碼片

2. YouCompleteMe—>實時自動補全

  • 簡介
    寫程式碼時,實時自動補全功能。YCM
  • 配置
Plugin 'Valloric/YouCompleteMe'

###2. Ctags------>函式跳
ctags:大多數 Unix 系統都能找到。只支援 C。只有基本的功能;
Exuberant_ctags:它支援 C、C++、Java、Fortran、Python、Eiffel、PHP等41種語言
總結來講,Exuberant_ctags其它就是ctags的多語言實現。
安裝:

sudo apt-get install exuberant-ctags
進入專案目錄,執行:

ctags -R

注:在更新專案程式碼時,都要執行這句哦。
此時,在當前目錄下生成一個tags檔案,再執行

vim
: set tags = 專案目錄/tags

該命令將tags檔案加入到vim中來, 你也可以將這句話放到~/.vimrc中去, 如果你經常在這個工程程式設計的話.

最佳實踐
pull/update程式碼後,在專案程式碼目錄下,執行以下:

ctags -R
vim
:set tags = ./tags

常見用法
ctrl+ ]:跳到游標所在函式或者結構體的定義處
ctrl+ t:返回查詢或跳轉(其實可以用ctrl+o返回,ctrl+i再進入)

3. Tagbar------>變數及函式列表

tagbar是一個taglist的替代品,比taglist更適合c++使用,函式能夠按類區分,支援按類摺疊顯示等,顯示結果清晰簡潔
tagbar/taglist做的僅僅是將tag檔案中的內容解析完後顯示在Vim上而已。tag掃描以及資料檔案的生成則是由ctags(Exuberant Ctags)這一工具完成的,所以在使用tagbar/taglist之前,你的電腦需要裝有ctags。
安裝ctags

sudo apt-get install exuberant-ctags
  • 效果圖

這裡寫圖片描述

  • 配置
Plugin 'majutsushi/tagbar'     "taglist的增強版,依賴於ctags,用來檢視函式,通常放在右側
" for tagbar plugin
"設定tagbar使用的ctags的外掛,必須要設定對,這一步也不一定,安裝ctags時會自動加環境變數
let g:tagbar_ctags_bin='/usr/bin/ctags'
let g:tagbar_width=30   "設定tagbar的視窗寬度  
let g:tagbar_right=1    "設定tagbar的視窗顯示在右側,其它預設也是在右側
let g:tagbar_sort = 0   "設定標籤不排序,預設排序 
"開啟檔案自動 開啟tagbar  
autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx,*.java call tagbar#autoopen()
map <F8> :TagbarToggle<CR>   " F8開啟Tagbar

4. cscope------>強大的查詢


1. vundle老版新版安裝
2. 外掛:taglist和nerdtree
3. vim配置