【Vim】使用Vundle管理配置Vim基本外掛程式

來源:互聯網
上載者:User

標籤:vim

Vundle

項目託管在github上https://github.com/gmarik/vundle。
其特色在於使用git來管理外掛程式,更新方便,支援搜尋,一鍵更新,從此只需要一個vimrc走天下。

在vimrc檔案中添加如下內容來啟用vundle管理vim外掛程式的功能:

set rtp+=$VIM/vimfiles/bundle/vundle/  call vundle#rc(‘$VIM/vimfiles/bundle/‘)  Bundle ‘gmarik/vundle‘

如果是linux系統,可以如下添加:

set rtp+=~/.vim/bundle/vundle/call vundle#rc()Bundle ‘gmarik/vundle‘
Vundle命令
  • :BundleList -列舉出列表中(.vimrc中)配置的所有外掛程式
  • :BundleInstall -安裝列表中全部外掛程式
  • :BundleInstall! -更新列表中全部外掛程式
  • :BundleSearch foo -尋找foo外掛程式
  • :BundleSearch! foo -重新整理foo外掛程式緩衝
  • :BundleClean -清除列表中沒有的外掛程式
  • :BundleClean! -清除列表中沒有的外掛程式
常用外掛程式的安裝和使用ctags和taglist

taglist是一個用於顯示定位程式中各種符號的外掛程式,例如宏定義、變數名、結構名、函數名這些東西 我們將其稱之為符號(symbols),而在taglist中將其稱之為tag。顯然,要想將程式檔案中的tag顯示出來,需要事先瞭解全部tag的信 息,並將其儲存在一個檔案中,然後去解析對應的tag檔案。taglist做的僅僅是將tag檔案中的內容解析完後顯示在Vim上而已。tag掃描以及數 據檔案的產生則是由ctags(Exuberant Ctags)這一工具完成的,所以在使用taglist之前,你的電腦需要裝有ctags。

vimrc配置資訊:

Bundle ‘taglist.vim‘let Tlist_Ctags_Cmd=‘ctags‘let Tlist_Show_One_File=1               "不同時顯示多個檔案的tag,只顯示當前檔案的let Tlist_WinWidt =28                   "設定taglist的寬度let Tlist_Exit_OnlyWindow=1             "如果taglist視窗是最後一個視窗,則退出vim"let Tlist_Use_Right_Window=1           "在右側視窗中顯示taglist視窗let Tlist_Use_Left_Windo =1             "在左側視窗中顯示taglist視窗 

跳到游標下tag所定義的位置,用滑鼠雙擊此tag功能也一樣
o 在一個新開啟的視窗中顯示光線標下tag
顯示光線標下tag的原型定義
u 更新taglist視窗中的tag
s 更改排序方式,在按名字排序和按出現順序排序間切換
x taglist視窗放大和縮小,方便查看較長的tag
+ 開啟一個摺疊,同zo
- 將tag摺疊起來,同zc
* 開啟所有的摺疊,同zR
= 將所有tag摺疊起來,同zM
[[ 跳到前一個檔案
]] 跳到後一個檔案
q 關閉taglist視窗

Tagbar

tagbar是一個taglist的替代品,比taglist更適合c++使用,函數能夠按類區分,支援按類摺疊顯示等,顯示結果清晰簡潔。
由於taglist在使用過程中對中文支援不好,當檔案夾是中文的時候,沒法產生taglist,於是這裡我使用tagbar,它可以很好的解決中文的問題。
https://github.com/majutsushi/tagbar

關於tagbar的配置:

Bundle ‘majutsushi/tagbar‘"nmap <Leader>tb :TagbarToggle<CR>      "快速鍵設定let g:tagbar_ctags_bin=‘ctags‘          "ctags程式的路徑let g:tagbar_width=30                   "視窗寬度的設定map <F3> :Tagbar<CR>"autocmd BufReadPost *.cpp,*.c,*.h,*.hpp,*.cc,*.cxx call tagbar#autoopen()  "如果是c語言的程式的話,tagbar自動開啟

更多的配置請參看:help tagbar
配置好之後可以使用:Tagbar或者按配置的快速鍵F3開啟。

NERDTree

NERDTree是一個用於瀏覽檔案系統的樹形資源管理外掛,它可以讓你像使用Windows檔案總管一樣在VIM中瀏覽檔案系統並且開啟檔案或目錄。
https://github.com/scrooloose/nerdtree

vimrc配置資訊:

Bundle ‘scrooloose/nerdtree‘let NERDTreeWinPos=‘right‘let NERDTreeWinSize=30map <F2> :NERDTreeToggle<CR>

配置之後可以使用:NERDTree或者配置的快速鍵F2開啟。

MiniBufExplorer

MiniBufExplorer提供多檔案同時編輯功能,並在編輯器上方顯示檔案的標籤。
https://github.com/fholgado/minibufexpl.vim

vimrc配置資訊:

Bundle ‘fholgado/minibufexpl.vim‘let g:miniBufExplMapWindowNavVim = 1   let g:miniBufExplMapWindowNavArrows = 1   let g:miniBufExplMapCTabSwitchBufs = 1   let g:miniBufExplModSelTarget = 1  let g:miniBufExplMoreThanOne=0map <F11> :MBEbp<CR>map <F12> :MBEbn<CR>

這裡配置了F11和F12鍵來進行前後buffer的跳轉,比較方便。如果要關閉某個buffer的話,可以使用命令:MBEbd [num],如果只是輸入:MBEbd是關閉當前buffer,如果後面跟有buffer的數字標號,則關閉指定的buffer。

這裡還想說一些BufExplorer這個外掛程式,這個外掛程式和MiniBufExplorer的功能差不多,網上也有一些討論他們之間的優缺點,但是我將BufExplorer和WinManager一起使用的時候總是會有些問題,導致一些錯誤和衝突,於是還是決定使用簡單的MiniBufExplorer。

vim-airline

vim-airline其實是powerline的copy,它相比powerline有幾個好處:它是純vim script,powerline則用到python;它簡單,速度比powerline快。
這是一款狀態列增強外掛程式,可以讓你的Vim狀態列非常的美觀,同時包括了buffer顯示條擴充smart tab line以及整合了一些外掛程式。
https://github.com/bling/vim-airline

vimrc配置資訊:

Bundle ‘bling/vim-airline‘set laststatus=2
WinManager(棄用)

這個WinManager已經好久沒有更新了,原先的版本有很多小bug,使用起來非常不爽,在網上找了一些改進的方法,感覺總是不盡人意,最終決定啟用。
這裡只是給出在使用的時候尋找的一些資訊。

vimrc配置資訊:

Bundle ‘vim-scripts/winmanager‘let g:NERDTree_title="[NERDTree]"let g:winManagerWindowLayout="NERDTree|BufExplorer"function! NERDTree_Start()    exec ‘NERDTree‘endfunctionfunction! NERDTree_IsValid()    return 1endfunctionnmap wm :WMToggle<CR>

這個版本的Winmanager好像有個小bug,你在開啟Winmanager介面時,會同時開啟一個空的檔案。這會影響後續使用,所以我們要在開啟Winmanager時關掉這個空檔案。winmanager.vim檔案中找到ToggleWindowsManager函數定義並在修改為如下內容:

function! <SID>ToggleWindowsManager()    if IsWinManagerVisible()        call s:CloseWindowsManager()    else        call s:StartWindowsManager()        exe ‘q‘    endendfunction
現在的效果

解決Windows下vim顯示中文亂碼問題

由於在windows下預設是gb編碼,而vim預設是utf-8,所以開啟會成亂碼。修改了一下設定檔,使vim支援gb編碼就好了。
修改一下vimrc設定檔:

let &termencoding=&encoding
set fileencodings=utf-8,gbk

vim編碼涉及的基本概念

encoding變數:該選項使用於緩衝的文本(你正在編輯的檔案)、寄存器、Vim指令檔等等。你可以把 ‘encoding’ 選項當作是對 Vim 內部運行機制的設定。
encoding變數的預設值與系統當前locale相同。
fileencoding變數:該選項是vim寫入檔案時採用的編碼類別型。
vim開啟檔案時自動辨認其編碼,fileencoding就為辨認的值。為空白則儲存檔案時採用encoding的編碼,如果沒有修改encoding,那值就是系統當前locale了。
termencoding變數:該選項代表輸出到客戶終端(Term)採用的編碼類別型。
預設空值,也就是輸出到終端不進行編碼轉換。

補充:使用pathogen來管理vim外掛程式

pathogen讓每個外掛程式佔有一個單獨的目錄,解決了檔案分散的問題。安裝完pathogen之後,只需要在~/.vim/目錄下建立一個目錄~/.vim/bundle/,並將要安裝的所有外掛程式放在~/.vim/bundle/目錄下即可以使用。如果要刪除某個外掛程式,只需要將~/.vim/bundle/目錄下對應的外掛程式目錄刪除即可。如果想保持某個外掛程式為最新版本,直接從外掛程式的倉庫checkout一份代碼到bundle目錄即可。

安裝並啟用pathogen

pathogen的為:https://github.com/tpope/vim-pathogen
下載後可以直接解壓。pathogen外掛程式只有一個單獨的指令碼,所謂安裝就是把它放在目前使用者的 ~/.vim/autoload 目錄下即可。
即,將解壓後的autoload目錄連同裡面的pathogen.vim外掛程式拷貝到~/.vim/目錄下。

要啟用pathogen,還需要在~/.vimrc 檔案裡, filetype plugin indent on 之前的任何地方,加入下面這句:

call pathogen#infect()

安裝外掛程式

要安裝新外掛程式,只需要下載該外掛程式,並將其放到~/.vim/bundle/目錄下即可。
假設要下載安裝NERDTree外掛程式,只需要進入到~/.vim/bundle/目錄,然後執行以下命令:

git clone http://github.com/scrooloose/nerdtree.git

下載完成後,會看到~/.vim/bundle/目錄下會多出一個新的目錄:nerdtree。NERDTree外掛程式已經安裝完成了!可以看到這種方式比傳統的vim外掛程式安裝方式簡單多了!
而要卸載該外掛程式也非常簡單,只需要在~/.vim/bundle/目錄下刪除nerdtree目錄即可,乾淨利落!
要更新該外掛程式到最新版本,只需要進入到該目錄~/.vim/bundle/nerdtree/,並執行以下命令:

git pull origin

小結

雖然使用pathogen這種方法也可以很好的管理vim外掛程式,相比於vundle,它們都是使用git環境來下載外掛程式的,但是vundle感覺更加自動化,可以直接使用命令就能進行外掛程式的更新和管理。

參考資料

vim配置及外掛程式安裝管理(超級詳細)
使用taglist外掛程式
vim顯示中文成亂碼問題解決
Vim外掛程式便捷管理(使用git submodule和pathogen)
vim外掛程式管理利器:pathogen

轉載請註明作者Jason Ding及其出處
GitCafe部落客頁(http://jasonding1354.gitcafe.io/)
Github部落客頁(http://jasonding1354.github.io/)
CSDN部落格(http://blog.csdn.net/jasonding1354)
簡書首頁(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)
百度搜尋jasonding1354進入我的部落客頁

【Vim】使用Vundle管理配置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.