Vim技能修煉教程(1) - 使用vundle管理插件

世界上有兩個偉大的編輯器:一個是emacs,一個是vi。它們從誕生以來,一直在Unix/Linux世界得到最廣泛的支持。
盡管過了幾十年,在Windows平臺上和跨平臺上有層出不窮的后起之秀不斷挑戰它們的地位,比如編輯器界的Sublime Text,Ultra Editor,Notepad++,pspad,Atom,Visual Studio Code,IDE界的Eclipse, IntellJ IDEA, NetBeans等等,但是它們的地位從未動搖過。
寫C#的最好IDE一定是Visual Studio,寫Java還是IntellJ IDEA和Eclipse更方便。但是,對于其它語言和其它任務,比起層出不窮的后來者,一定是emacs和vim的支持是最廣泛的。針對一個特定的任務,可能Sublime Text和Atom只有區區幾種插件選擇甚至是沒有,但是在vim和emacs上可以找到好多頁。

這兩種編輯器的學習曲線確實是相對比較陡的,但是,一旦修煉成功,這樣的付出是絕對值得的。造成學習困難的主要原因,其實是功能太多太強大。這個修煉需要花不少的精力和時間,想修成上仙甚至上神是不容易的,但是,只要堅持下去,最終一定可以做到。好了,廢話不多說了,我們開始修煉之旅。

修仙之前,我們先享受一下凡人的生活。我們先看看如何利用各位上仙上神做好的法器,也就是寫好的腳本。

使用vundle管理插件

做為人類,我們先不研究上仙上神們是如何擺放腳本位置的,我們統一通過vundle來管理其余插件。

首先我們下載Vundle,通過git命令,非常簡單:

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

下面我們再通過修改/.vimrc來配置一下,把下面原封不動抄到/.vimrc就好:

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on

我們只需要在call vundle#end()那一行之前,加上我們需要的plugin的內容就可以了。
下面我們開始vim plugin的尋寶之旅,第一站當然是官網!

vim插件寶庫之官方網站

vim的第一集散地當然是官網:http://www.vim.org/scripts/index.php

比如我寫C/C++比較多,我們就先拿c.vim來試試水。
官網上的插件的git庫都放在這里:http://vim-scripts.org/vim/scripts.html
對于官網上的插件,我們直接使用vim-scripts.org上的目錄名就好,比如c.vim,taglist.vim之類的,然后修改~/.vimrc文件:

set nocompatible              " be iMproved, required
filetype off                  " required                                                              

" set the runtime path to include Vundle and initialize                                               
set rtp+=~/.vim/bundle/Vundle.vim                                                                     
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim

Plugin 'c.vim'

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required
" To ignore plugin indent changes, instead use:
"filetype plugin on

重啟vim,讓新的然后我們運行:PluginInstall命令,c.vim插件就被自動安裝上了。
我們試驗一下c.vim的強大功能吧,我們創建一個新的C++文件,比如test2.cpp,運行:

vim test2.cpp

打開之后,發生了什么?c.vim插件已經按照模板自動幫我們生成的文檔頭:

/*
 * =====================================================================================
 *
 *       Filename:  test2.cpp
 *
 *    Description:
 *
 *        Version:  1.0
 *        Created:  2017/06/23 12時24分15秒
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  YOUR NAME (),
 *   Organization:
 *
 * =====================================================================================
 */
#include <stdlib.h>

比如我們要寫一個for循環,試試輸入\i0,vim會提示輸入一個變量名,我們就用i吧,于是就生成了這樣的代碼塊:

        for ( i = 0; i < n; i += 1 ) {
        }

更多的好玩的快捷鍵功能,可以參考這個:https://wolfgangmehner.github.io/vim-plugins/csupport/c-hotkeys.pdf

更完整的功能,可以參考文檔:https://wolfgangmehner.github.io/vim-plugins/doc/csupport.html

也可以通過:help csupport在vim中查看。

vim插件寶庫之github

除了官網之外,github上也是vim插件的大型集散地。很多官網上的插件,在github上也有鏡像。
vundle對于github的支持也是很好的,比如NERD tree的地址是:https://github.com/scrooloose/nerdtree,我們可以省略github地址,直接輸用戶名和庫名就可以了,例:

     Plugin 'scrooloose/nerdtree'

凡git庫皆可支持

一般來說,官網和github上已經足夠用了。但是,總是有一些特殊需求,比如公司內部使用之類的。這時候,我們只要附上git的地址就好,例:

Plugin 'git@gitlab.alibaba-inc.com:ziying.liuziying/studyvim.git'

本地目錄

如果上面幾種方式都不支持,比如是我們自己的寫的插件,不想放到網上去,我們還可以指定本地目錄的方式來使用插件。

例:

Plugin 'file:///home/gmarik/path/to/plugin'

Vundle簡明手冊

手動方式

就是將插件名寫進.vimrc,然后通過:PluginInstall命令去安裝

  • PluginList命令:列出已經安裝的插件。

下面是我安裝的一些插件:

" My Plugins
Plugin 'VundleVim/Vundle.vim'
Plugin 'd.vim'
Plugin 'taglist.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'c.vim'
Plugin 'OmniCppComplete'
Plugin 'clang-complete'
Plugin 'AutoComplPop'
Plugin 'bufexplorer.zip'
Plugin 'SuperTab'
Plugin 'SrcExpl'
Plugin 'molokai'
Plugin 'omlet.vim'
Plugin 'cpp.vim'
Plugin 'thinca/vim-logcat'
Plugin 'vim-scripts/prop.vim'
Plugin 'mglb/vim-android-syntax'
  • PluginInstall命令:安裝在.vimrc中指定的插件。如果要更新的話使用:PluginInstall! 或者:PluginUpdate命令

  • PluginClean:刪除從.vimrc中刪去的plugin

互動方式

:PluginSearch命令可以搜索字符串,搜索到之后,就可以直接點擊i進行安裝。
不過重啟vim之后就沒有了。希望每次啟動后都有的話,還是寫進.vimrc吧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容