"配置Vundle
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#rc()
filetype plugin indent on
"dengxu 添加安装youcompleteme参数
Bundle 'Valloric/YouCompleteMe'
Bundle 'scrooloose/syntastic'
Bundle 'majutsushi/tagbar'
Bundle 'ervandew/supertab'
Bundle 'phonzia/cppSyntaxCheck'
Bundle 'craigemery/vim-autotag'
Bundle 'elzr/vim-json'
Bundle 'vim-scripts/a.vim'
Bundle 'justinmk/vim-sneak'
"YouCompleteMe配置
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
let Tlist_Ctag_Cmd='/usr/bin/ctags'
let g:ycm_complete_in_comments=1 "补全功能在注解中同样有效
let g:ycm_collect_identifiers_from_tags_files=1 "开启YCM基于标签引擎
set tags+=/data/misc/software/misc./vim/stdcpp.tags "引入c++标准库tags,这个没有也没有关系,只要.ycm_extra_conf.py文件中指定了正确的标准库路径
"YCM OmniCppComplete补全引擎,设置其快捷键
inoremap <leader>; <C-x><C-o>
" 补全内容不以分割子窗口形式出现,只显示补全列表
set completeopt-=preview
let g:ycm_semantic_triggers = {
\ 'c':['->','.','re![_a-zA-Z0-9]'],
\ 'ojbc':['->','.','re![_a-zA-Z]+\w*\s','re!^\s*[^\W\d]\w*\s','re!\[.*\]\s'],
\ 'ocaml':['.','#'],
\ 'cpp,objcpp':['->','.','::','re![_a-zA-Z0-9]'],
\ 'perl':['->','.','re![_a-zA-Z0-9]'],
\ 'php':['->','::'],
\ 'cs,java,javascript,typescript,d,python,perl6,scala,vb,elixir,go':['.'],
\}
" 从第一个键入字符就开始罗列匹配项
let g:ycm_min_num_of_chars_for_completions=1
" 禁止缓存匹配项, 每次都重新生成匹配项
let g:ycm_cache_omnifunc=0
" 语法关键字补全
let g:ycm_seed_identifiers_with_syntax=1
" 修改对C函数的补全快捷键,默认是CTRL+SPACE,修改为ALT + ;
let g:ycm_key_invoke_completion = '<M-;>'
" 设置转到定义处的快捷键为ALT+G,这个功能非常赞
nmap <M-g> :YcmCompleter GoToDefinitionElseDeclaration <C-R>=expand("<cword>")<CR><CR>
"tagbar 配置
nmap <F4> :TagbarToggle<CR>
let g:tagbar_width=40
autocmd VimEnter * nested :call tagbar#autoopen(1)
let g:tagbar_left=1
let g:tagbar_right=1
因篇幅问题不能全部显示,请点此查看更多更全内容