/********************************************************************** * 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$