/**********************************************************************
* Vim Vundle 插件管理器
* 说明:
* 话说Vim也已经用了挺久了,一直没有使用插件,有些时候不使用插件总
* 感觉缺点什么,当然也是因为没有找到一些好的管理插件的方法,这次不
* 小心找到了Vundle,感觉很不错,尝试用起来,这样效率能提高不少。
*
* 2016-4-9 深圳 南山平山村 曾剑锋
*********************************************************************/ 一、参考文档:
. Downloading Vim
http://www.vim.org/download.php#others
. Help Maintain Vundle
https://github.com/VundleVim/Vundle.vim
. 所需即所获:像 IDE 一样使用 vim
https://github.com/yangyangwithgnu/use_vim_as_ide
. Vim Scripts
http://vim-scripts.org/index.html
. Vim Scripts Browse all
http://www.vim.org/scripts/script_search_results.php
. Vundle PluginInstall 'Valloric/YouCompleteMe' 卡死在 processing 的可能性有?
https://www.v2ex.com/t/216549
. Linux中源码安装编译Vim
http://www.linuxidc.com/Linux/2014-04/99717.htm
. Vim自动补全神器:YouCompleteMe
http://blog.jobbole.com/58978/
. 像 IDE 一样使用 Vim
http://www.tuicool.com/articles/f6feae 二、Vundle
. 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: , done.
remote: Total (delta ), reused (delta ), pack-reused
Receiving objects: % (/), 899.90 KiB | KiB/s, done.
Resolving deltas: % (/), done.
zengjf@zengjf:~$ . 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
. plugin install
vim中执行":PluginInstall"
. plugin clean
vim中执行":PluginClean"
. plugin update
vim中执行":PluginUpdate" 三、插件问题:
. Vim版本太低:
. 卸载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
. 下载Vim源码:
http://www.vim.org/download.php#unix
. ./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2./ --enable-perlinterp --enable-gui=gtk2 --enable-cscope --enable-luainterp --enable-perlinterp --enable-multibyte --prefix=/usr
. sudo make VIMRUNTIMEDIR=/usr/share/vim/vim74
. sudo make install
. YouCompleteMe:
. 安装时,vim卡在YouCompleteMe那里很久,YouCompleteMe对应的目录有没有文档更新。
. github: https://github.com/Valloric/YouCompleteMe
. git clone --recursive https://github.com/Valloric/YouCompleteMe.git
. 安装失败:
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: (cmake_minimum_required):
CMake 2.8. or higher is required. You are running version 2.8. -- Configuring incomplete, errors occurred!
Traceback (most recent call last):
File "/home/zengjf/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py", line , in <module>
Main()
File "/home/zengjf/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py", line , in Main
BuildYcmdLib( args )
File "/home/zengjf/.vim/bundle/YouCompleteMe/third_party/ycmd/build.py", line , in BuildYcmdLib
subprocess.check_call( [ 'cmake' ] + full_cmake_args )
File "/usr/lib/python2.7/subprocess.py", line , 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
Traceback (most recent call last):
File "./install.py", line , in <module>
Main()
File "./install.py", line , in Main
subprocess.check_call( [ python_binary, build_file ] + sys.argv[:] )
File "/usr/lib/python2.7/subprocess.py", line , 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
. 目前未解决。 四、.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
...... 五、插件情况:
zengjf@zengjf:~/.vim/bundle$ ls
bufexplorer.zip nerdcommenter SrcExpl Vundle.vim
minibufexpl.vim nerdtree taglist.vim
zengjf@zengjf:~/.vim/bundle$