vi安装Vundle+YouCompleteMe+注释快捷'scrooloose/nerdcommenter'
Vundle is short for Vim bundle and is a Vim plugin manager.
- 从git上下载vundle
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
- 配置vundle插件
-
Put this at the top of your
.vimrc
to use Vundle. Remove plugins you don't need, they are for illustration purposes.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' " The following are examples of different formats supported. " Keep Plugin commands between vundle#begin/end. " plugin on GitHub repo Plugin 'tpope/vim-fugitive' " plugin from http://vim-scripts.org/vim/scripts.html Plugin 'L9' " Git plugin not hosted on GitHub Plugin 'git://git.wincent.com/command-t.git' " git repos on your local machine (i.e. when working on your own plugin) 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. Plugin 'ascenator/L9', {'name': 'newL9'}
"下面这行是添加YouCompleteMe插件 Bundle 'Valloric/YouCompleteMe'
"下面这行是添加注释插件,可以\cc注释,用\cu取消注注释
Bundle 'scrooloose/nerdcommenter' " 所有vundle管理的插件都要在下面这行结束之前写好 call vundle#end() " required filetype plugin indent on " required " To ignore plugin indent changes, instead use: "filetype plugin on " " Brief help 下面是vi中的命令,可以打开vim之后命令模式下输入执行 " :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 " 下面可以加一些其它的自定义vi配置,比如说:
set number
set autoindent
set cindent
syntax enable
syntax on
"set c_Coo=256
set backspace=indent,eol,start
set tabstop=4
set shiftwidth=4
set smarttabet
"set softabstop=4
set expandtab
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,lantin1
filetype on
filetype indent on
filetype plugin indent on -
下载插件:
打开vim并运行命令
:PluginInstall,会自动把上面添加的YouCompleteMe下载到~/.vim/bundle/YouCompleteMe
To install from command line:
vim +PluginInstall +qall
-
- 下载完成YouCompleteMe后,需要对其进行编译安装
cd ~/.vim/bundle/YouCompleteMe
./install --clang-completer
这里需要安装有python-dev和cmake包
打开vim时提示No .ycm_extra_conf.py file detected, so no compile flags are available. Thus no semantic support for C/C++/ObjC/ObjC++.。只需要设置.ycm_extra_conf.py文件的位置即可,在.virmc文件中添加如下内容let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py',如果该路径下没有,有可能 在let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py',然后重新打开vim即可。
From <http://hahaya.github.io/build-YouCompleteMe/>
- 配置YouCompleteMe
"下面这部分没改
为了补全C++代码,在Linux下我们需要修改.ycm_extra_conf.py文件中的flags部分,使用-isystem添加系统的头文件进行解析,使用-I添加第三方的头文件进行解析,在flags部分后添加如下内容:
'-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/4.8',
10. '-isystem',
11. '/usr/include',
12. '/usr/include/x86_64-linux-gun/c++',
From <http://hahaya.github.io/build-YouCompleteMe/>
使用YouCompleteMe进行代码跳转可以通过绑定一个快捷键:nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>,很好理解,先跳到定义,如果没找到,则跳到声明处。\jd
From <http://feihu.me/blog/2014/intro-to-vim/>
:help map可以进入vi的快捷键的相关帮助文档
例如,本来需要按\jd转到变量的定义,那么现在只要按,jd就可以了
~/.vimrc:
let leader=','
letg:mapleader=','
nnoremap <leader>jd:Ycmcompleter GoToDefinitionElseDeclaration<CR>
设置注释的颜色
highlight Comment ctermfg=green guifg=green
From <http://blog.csdn.net/bendanban/article/details/7968055>