Vim Vundle 插件管理器

/**********************************************************************
 *                      Vim Vundle 插件管理器
 * 說明:
 *     話說Vim也已經用了挺久了,一直沒有使用插件,有些時候不使用插件總
 * 感受缺點什麼,固然也是由於沒有找到一些好的管理插件的方法,此次不
 * 當心找到了Vundle,感受很不錯,嘗試用起來,這樣效率能提升很多。
 *
 *                                    2016-4-9 深圳 南山平山村 曾劍鋒
 *********************************************************************/

1、參考文檔:
    1. Downloading Vim
        http://www.vim.org/download.php#others
    2. Help Maintain Vundle
        https://github.com/VundleVim/Vundle.vim
    3. 所需即所獲:像 IDE 同樣使用 vim
        https://github.com/yangyangwithgnu/use_vim_as_ide
    4. Vim Scripts
        http://vim-scripts.org/index.html
    5. Vim Scripts Browse all
        http://www.vim.org/scripts/script_search_results.php
    6. Vundle PluginInstall 'Valloric/YouCompleteMe' 卡死在 processing 的可能性有?
        https://www.v2ex.com/t/216549
    7. Linux中源碼安裝編譯Vim
        http://www.linuxidc.com/Linux/2014-04/99717.htm
    8. Vim自動補全神器:YouCompleteMe
        http://blog.jobbole.com/58978/
    9. 像 IDE 同樣使用 Vim
        http://www.tuicool.com/articles/f6feae
        

2、Vundle
    1. Vundle安裝:
        zengjf@zengjf:~$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
        Cloning into '/home/zengjf/.vim/bundle/Vundle.vim'...
        remote: Counting objects: 3016, done.
        remote: Total 3016 (delta 0), reused 0 (delta 0), pack-reused 3016
        Receiving objects: 100% (3016/3016), 899.90 KiB | 185 KiB/s, done.
        Resolving deltas: 100% (1040/1040), done.
        zengjf@zengjf:~$ 

    2. Configure Plugins(.vimrc) hacking:
        
        " set compatible 就是讓 vim 關閉全部擴展的功能,儘可能模擬 vi 的行爲。
        set nocompatible              " be iMproved, required
        filetype off                  " required

        " set the runtime path to include Vundle and initialize
        " 添加運行時路徑,用於包含Vundle和初始相關的工做
        " zengjf@zengjf:~/.vim/bundle/Vundle.vim$ pwd
        " /home/zengjf/.vim/bundle/Vundle.vim
        " zengjf@zengjf:~/.vim/bundle/Vundle.vim$ ls
        " autoload         doc              README.md        syntax
        " changelog.md     ftplugin         README_ZH_CN.md  test
        " CONTRIBUTING.md  LICENSE-MIT.txt  README_ZH_TW.md
        "
        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
        " 讓Vundle管理Vundle,這是必須的
        Plugin 'VundleVim/Vundle.vim'

        " The following are examples of different formats supported.
        " Keep Plugin commands between vundle#begin/end.
        " 下面是一些不一樣來源的插件的配置案例
        " 請將這些插件配置放置於vundle#begin/end之間

        " plugin on GitHub repo
        " GitHub 倉庫插件格式
        Plugin 'tpope/vim-fugitive'
        " plugin from http://vim-scripts.org/vim/scripts.html
        " vim 官方插件配置方法,寫入名字就好了
        Plugin 'L9'
        " Git plugin not hosted on GitHub
        " git服務器插件,但不是在GitHub上面
        Plugin 'git://git.wincent.com/command-t.git'
        " git repos on your local machine (i.e. when working on your own plugin)
        " git 倉庫在本身的電腦上
        Plugin 'file:///home/gmarik/path/to/plugin'
        " The sparkup vim script is in a subdirectory of this repo called vim.
        " Pass the path to set the runtimepath properly.
        Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
        " Install L9 and avoid a Naming conflict if you've already installed a
        " different version somewhere else.
        " 已經存在一個L9的插件了,另外再安裝一個名字叫L9的插件
        Plugin 'ascenator/L9', {'name': 'newL9'}

        " 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
        "
        " Brief help   簡短的幫助說明
        " :PluginList       - lists configured plugins   列出全部的安裝了的插件
        " :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
        " :PluginSearch foo - searches for foo; append `!` to refresh local cache
        " :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
        "
        " see :h vundle for more details or wiki for FAQ
        " Put your non-Plugin stuff after this line
    3. plugin install
        vim中執行":PluginInstall"
    4. plugin clean
        vim中執行":PluginClean"
    5. plugin update
        vim中執行":PluginUpdate"

3、插件問題:
    1. Vim版本過低:
        1. 卸載Vim
            sudo apt-get remove vim  
            sudo apt-get remove vim-runtime  
            sudo apt-get remove gvim  
            sudo apt-get remove vim-tiny  
            sudo apt-get remove vim-common  
            sudo apt-get remove vim-gui-common
        2. 下載Vim源碼:
            http://www.vim.org/download.php#unix
        3. ./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/ --enable-perlinterp --enable-gui=gtk2 --enable-cscope --enable-luainterp --enable-perlinterp --enable-multibyte --prefix=/usr
        4. sudo make VIMRUNTIMEDIR=/usr/share/vim/vim74
        5. sudo make install
    2. YouCompleteMe:
        1. 安裝時,vim卡在YouCompleteMe那裏好久,YouCompleteMe對應的目錄有沒有文檔更新。    
        2. github: https://github.com/Valloric/YouCompleteMe
        3. git clone --recursive https://github.com/Valloric/YouCompleteMe.git
        4. 安裝失敗:
            zengjf@zengjf:~/.vim/bundle/YouCompleteMe$ ./install.sh --clang-complete
            WARNING: this script is deprecated. Use the install.py script instead.
            CMake Error at CMakeLists.txt:28 (cmake_minimum_required):
              CMake 2.8.11 or higher is required.  You are running version 2.8.7


            -- Configuring incomplete, errors occurred!
            Traceback (most recent call last):
              File "/home/zengjf/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py", line 445, in <module>
                Main()
              File "/home/zengjf/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py", line 434, in Main
                BuildYcmdLib( args )
              File "/home/zengjf/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py", line 331, in BuildYcmdLib
                subprocess.check_call( [ 'cmake' ] + full_cmake_args )
              File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
                raise CalledProcessError(retcode, cmd)
            subprocess.CalledProcessError: Command '['cmake', '-G', 'Unix Makefiles', '-DUSE_CLANG_COMPLETER=ON', '-DUSE_PYTHON2=ON', '/home/zengjf/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp']' returned non-zero exit status 1
            Traceback (most recent call last):
              File "./install.py", line 32, in <module>
                Main()
              File "./install.py", line 21, in Main
                subprocess.check_call( [ python_binary, build_file ] + sys.argv[1:] )
              File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
                raise CalledProcessError(retcode, cmd)
            subprocess.CalledProcessError: Command '['/usr/bin/python2', '/home/zengjf/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py', '--clang-complete']' returned non-zero exit status 1
        5. 目前未解決。

4、.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()
    Plugin 'VundleVim/Vundle.vim'
    Plugin 'scrooloose/nerdcommenter'
    Plugin 'scrooloose/nerdtree'
    Plugin 'fholgado/minibufexpl.vim'
    Plugin 'wesleyche/SrcExpl'
    Plugin 'bufexplorer.zip'
    call vundle#end()            " required
    filetype plugin indent on    " required
    " To ignore plugin indent changes, instead use:
    "filetype plugin on
    "
    " Brief help
    " :PluginList       - lists configured plugins
    " :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
    " :PluginSearch foo - searches for foo; append `!` to refresh local cache
    " :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
    "
    " see :h vundle for more details or wiki for FAQ
    " Put your non-Plugin stuff after this line
    ......

5、插件狀況:
    zengjf@zengjf:~/.vim/bundle$ ls
    bufexplorer.zip  nerdcommenter  SrcExpl      Vundle.vim
    minibufexpl.vim  nerdtree       taglist.vim
    zengjf@zengjf:~/.vim/bundle$ 
    
相關文章
相關標籤/搜索