天天看點

vim 中的殺手級插件: vundle (vim 插件管理器)

vundle.txt:​​https://github.com/VundleVim/Vundle.vim/blob/master/doc/vundle.txt​​

Vundle 的具體介紹和配置:github repo:​​https://github.com/gmarik/vundle​​​  或者  vim.org:​​https://vim.sourceforge.io/scripts/script.php?script_id=3458​​

如果想找到适合自己的Vim插件。可以浏覽 ​​ http://www.vim-scripts.org​​​、Github 或​​http://www.vimawesome.com​​,查找新的腳本或插件。另外記得使用插件的幫助文檔。

背景

相比 sublime text2 等現代編輯器,Vim 缺乏預設的插件管理器,所有插件的檔案都散布在 ~/.vim 下的幾個檔案夾中,配置 vim 的過程,就是在網上不停的搜插件,拷貝到 ~/.vim下,發現更新時需要重新下載下傳重新拷貝,想要删除某個不需要插件,更是要小心翼翼的不要删錯。配置出順手的Vim, 需要極大的耐心和運氣。

當然 vim 社群的活力是不容懷疑的,沒有槍沒有炮大神們自己造。以前使用過 tpope 的 ​​pathogen​​,使用 git submodule 和pathogen, 管理插件已經大大簡化。而今天介紹的 vundle, 更是把 git 操作整合進去,使用者需要做的隻是去 Github 上找到自己想要的插件的名字,安裝,更新和解除安裝都可有 vundle 來完成了。雖然去發現一個好的插件仍然是一個上下求索的過程,但是使用者已經可以從安裝配置的繁瑣過程解脫了。

現在使用 vundle 來管理 vim 是潮流,并且友善快捷。它使用類似 Ruby Bundler 的方式來管理插件,你隻需要在.vimrc裡面用Bundle聲明插件

Vundle 簡介

Vundle 是 Vim bundle 的簡稱,是一個 Vim 插件管理器. (bundle 是 打包的檔案、程式的集合)

Vundle 允許你做…

  1. 在 .vimrc中 跟蹤 和 管理 插件
  2. 安裝特定格式的插件(a.k.a. scripts/bundle)
  3. 更新特定格式插件
  4. 通過插件名稱搜尋Vim scripts中的插件
  5. 清理未使用的插件
  6. 可以通過單一按鍵完成以上操作,詳見​​interactive mode​​

Vundle 可以自動完成

  1. 管理已安裝插件的runtime path
  2. 安裝和更新後,重新生成幫助标簽

安裝 和 配置

首先,如果你的Linux系統上還沒有Git,安裝它(http://ask.xmodulo.com/install-git-linux.html)。

下一步,建立一個目錄,Vim插件下載下傳後将安裝到該目錄下。預設情況下,該目錄位于~/.vim/bundle。

// 這條指令預設安裝在 ~/.vim/bundle/vundle 下
$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle      

下面是我本機 安裝在家目錄下 :~/.vim/bundle/Vundle.vim/

其實也可以 直接下載下傳 源碼檔案,下載下傳之後可以看到壓縮包裡面的檔案 就是 圖中 Vundle.vim 目錄下面的所有檔案。

配置說明

插件有三種類型: 

  1. Github 上 vim-scripts 倉庫的插件
  2. Github上非 vim-scripts 倉庫的插件
  3. 不在 Github 上的插件

對于不同的插件,vundle 自動管理和下載下傳插件的時候,有不同的位址填寫方法,有如下三類: 

  1. 在 Github 上 vim-scripts 使用者下的倉庫,隻需要寫出repos(倉庫)名稱
  2. 在 Github 其他使用者下的 repos,需要寫出”使用者名/repos名”
  3. 不在Github上的插件,需要寫出git全路徑

配置 vundle 插件

舊版配置:vundle#rc()、Bundle。         新版配置:vundle#begin()、Plugin。

現在都使用新版的配置格式

可以在終端通過 vim 打開 ~/.vimrc 檔案:$vim ~/.vimrc

也可以直接在目錄中打開( 快捷鍵 ctrl+H 顯示隐藏檔案 )。将以下加在 .vimrc 檔案中,加入之後儲存之後就可以使用vundle了。

添加的配置資訊(樣例)

注:以後安裝新插件就直接編輯vimrc,添加plugin就行了,在這裡我們添加的plugin隻是例子,你可以不安裝這些插件,換上自己需要安裝的插件。

*************************** github 說 必須放在 vimrc 檔案所有内容的前面。***************************

我手動 把那些 必需 的 配置敲上之後報錯。為了省事,直接把 github 上 的配置 全部複制 粘貼到 vimrc 檔案的開頭

github 上配置:​​https://github.com/VundleVim/Vundle.Vim​​

上半部分 是 添加 的 vundle 的配置部分。下半部分是 vimrc 原始 内容。

新版的配置格式:

把下面配置放在你的 .vimrc 檔案所有内容之前(如不明白,看 github 上說明)

set nocompatible              " 這是必需的,去除VI一緻性
filetype off                  " 這是必需的 


" 在此設定運作時路徑。即設定包括vundle和初始化相關的runtime path
set rtp+=~/.vim/bundle/Vundle.vim


" vundle初始化 
call vundle#begin()  

" 另一種選擇, 指定一個vundle安裝插件的路徑
"call vundle#begin('~/some/path/here')


" 讓vundle管理插件版本,必須。" 這應該始終是第一個
Plugin 'VundleVim/Vundle.vim'


" 以下範例用來支援不同格式的插件安裝.
" 請将安裝插件的指令放在vundle#begin和vundle#end之間.

" Github上的插件
" 格式為 Plugin '使用者名/插件倉庫名'
Plugin 'tpope/vim-fugitive'

" 來自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名稱' 實際上是 Plugin 'vim-scripts/插件倉庫名' 隻是此處的使用者名可以省略
Plugin 'L9'

" 由Git支援但不再github上的插件倉庫 Plugin 'git clone 後面的位址'
Plugin 'git://git.wincent.com/command-t.git'

" 本地的Git倉庫(例如自己的插件) Plugin 'file:///+本地插件倉庫絕對路徑'
Plugin 'file:///home/gmarik/path/to/plugin'

" 插件在倉庫的子目錄中.
" 正确指定路徑用以設定runtimepath. 以下範例插件在sparkup/vim目錄下
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}

" 安裝L9,如果已經安裝過這個插件,可利用以下格式避免命名沖突
Plugin 'ascenator/L9', {'name': 'newL9'}


" 你的所有插件需要在下面這行之前
call vundle#end()            " 必須
filetype plugin indent on    " 必須 加載vim自帶和插件相應的文法和檔案類型相關腳本

" 忽視插件改變縮進,可以使用以下替代:
"filetype plugin on
"

" 常用的指令
" :PluginList       - 列出所有已配置的插件
" :PluginInstall     - 安裝插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜尋 foo ; 追加 `!` 清除本地緩存
" :PluginClean      - 清除未使用插件,需要确認; 追加 `!` 自動準許移除未使用插件
"
" 查閱 :h vundle 擷取更多細節和wiki以及FAQ


" 将自己的非插件片段放在這行之後(也就是上面的所有全部放在檔案所有内容之前。)      

老版的配置格式

####在.vimrc 中添加bundle的配置

filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
Bundle '其他的 github 位置...'
filetype plugin indent on      

Vundle 自己本身也是插件,上面實作了其對自己的管理。

set nocompatible              " 這是必需的,去除VI一緻性
filetype off                  " 這是必需的 

set rtp+=~/.vim/bundle/vundle/
call vundle#rc()


" 現在讓我們開始管理插件

Bundle 'gmarik/vundle'
"my Bundle here:
"
" original repos on github
Bundle 'kien/ctrlp.vim'
Bundle 'sukima/xmledit'
Bundle 'sjl/gundo.vim'
Bundle 'jiangmiao/auto-pairs'
Bundle 'klen/python-mode'
Bundle 'Valloric/ListToggle'
Bundle 'SirVer/ultisnips'
Bundle 'Valloric/YouCompleteMe'
Bundle 'scrooloose/syntastic'
Bundle 't9md/vim-quickhl'
" Bundle 'Lokaltog/vim-powerline'
Bundle 'scrooloose/nerdcommenter'
"..................................
" vim-scripts repos
Bundle 'YankRing.vim'
Bundle 'vcscommand.vim'
Bundle 'ShowPairs'
Bundle 'SudoEdit.vim'
Bundle 'EasyGrep'
Bundle 'VOoM'
Bundle 'VimIM'
"..................................
" non github repos
" Bundle 'git://git.wincent.com/command-t.git'
"......................................
filetype plugin indent on      

修改完 vimrc 檔案之後,可以驗證下結果:

king@kali:~# vi
:BundleList      

如果看到上面結果,恭喜你,成功了。。。。。

安裝插件

Vundle 指令用法

一旦你用Vundle設定好了插件,就可以使用幾個Vundle指令,用Vundle來安裝、更新、搜尋和清理閑置未用的插件。

将想要安裝的插件,按照位址填寫方法,将位址填寫在vundle#begin和vundle#end之間,儲存之後,有兩種方法安裝插件。

打開一個vim, 運作​

​:BundleInstall​

​ 

$vim
:PlugInstall                         指令會安裝在你的.vimrc檔案中列出來的所有插件。
:PluginInstall <plugin-name>         還可以隻安裝某一個特定的插件,隻要傳遞其名稱。

:BundleList             -列舉清單(也就是.vimrc)中配置的所有插件  
:BundleInstall          -安裝清單中的全部插件  
:BundleInstall!         -更新清單中的全部插件  
:BundleSearch foo       -查找foo插件  
:BundleSearch! foo      -重新整理foo插件緩存  
:BundleClean            -清除清單中沒有的插件  
:BundleClean!           -清除清單中沒有的插件      

或者在指令行運作 ​

​vim +BundleInstall +qall​

​ 

vim +PluginInstall +qall      

安裝完成後插件就能用了。安裝插件所在的目錄截圖

####其它常用指令:

移除不需要的插件:編輯.vimrc檔案移除的你要移除的插件所對應的plugin那一行。儲存退出目前的vim重新打開vim,輸入指令BundleClean。

搜尋插件:如果你想從所提供的插件清單安裝一個插件,搜尋功能就很有用。:PluginSearch <text-list>

在搜尋過程中,你可以在互動式分屏上安裝、清理、研究或重新裝入同一清單。安裝插件不會自動裝入你的插件。想自動裝入插件,将插件添加到你的.vimrc檔案。

附上一則vundle新老指令的對比(現在目測都可用)