如何强制YouCompleteMe完成代码,尤其是剪辑完成?

时间:2015-12-28 14:13:58

标签: vim youcompleteme

这张图片我的问题看起来像

https://cloud.githubusercontent.com/assets/13230384/12019443/3981e0f6-adab-11e5-85a7-c0ec84b1e63a.png

这是我的.vimrc

"==========================
"vundle
set nocompatible " be iMproved
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
"======================
" For GitHub repos, you specify plugins using the 'user/repository' format
Plugin 'Valloric/YouCompleteMe'
Plugin 'scrooloose/syntastic'
Plugin 'bling/vim-airline'
Plugin 'SirVer/ultisnips'
Plugin 'edsono/vim-matchit'
Plugin 'elzr/vim-json'
Plugin 'honza/vim-snippets'
Plugin 'justinmk/vim-sneak'
Plugin 'kien/ctrlp.vim'
Plugin 'ludovicchabant/vim-lawrencium'
Plugin 'majutsushi/tagbar'
Plugin 'mhinz/vim-signify'
Plugin 'plasticboy/vim-markdown'
Plugin 'scrooloose/nerdcommenter'
Plugin 'sjl/gundo.vim'
Plugin 'tpope/vim-fugitive'
Plugin 'tpope/vim-sleuth'
Plugin 'tpope/vim-serround'
Plugin 'tyru/open-browser.vim'
Plugin 'vim-scripts/a.vim'

"color schemes
Plugin 'tomasr/molokai'
Plugin 'flazz/vim-colorschemes'

"========================
" 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
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line  
"====================================

let mapleader=";"
set incsearch
set ignorecase
set wildmenu
set laststatus=2
set ruler
set number
syntax enable
syntax on
filetype indent on
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set foldmethod=syntax
set nofoldenable
set nowrap

"===========================
"colorscheme
set t_Co=256
set background=dark
"colorscheme solarized
colorscheme molokai
""colorscheme

"=============================
" the ycm_extra_conf.py
let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py' 
let g:UltiSnipsSnippetDirectories=["mysnippets"]

"================= 
"complete in comment
let g:ycm_complete_in_comments=1
"enable cpptags
let g:ycm_collect_identifiers_from_tags_files=1
"include stdcpp tags
set tags+=/data/misc/software/misc./vim/stdcpp.tags
"disable preview    
set completeopt-=preview

nnoremap <leader>gl :YcmCompleter GoToDeclaration
nnoremap <leader>gf :YcmCompleter GoToDefinition
nnoremap <leader>gg :YcmCompleter GoToDefinitionElseDeclaration"

" YouCompleteMe
let g:ycm_key_list_previous_completion=['<Up>']

"" Ultisnips
let g:UltiSnipsExpandTrigger="<c-tab>"
let g:UltiSnipsListSnippets="<c-s-tab>"

在我点击“fo”之后,这张照片就显示出来了。然后,我可以做的是点击“Tab”从一个选项移动到另一个选项,问题是我应该点击什么来扩展“剪辑”的补充([tab]不能接受完成,如什么valloric said in user guide)? 另一个问题是为什么我不能让你完成一个函数,一个类?在这种情况下,我想我的youcompleteme完成一个功能“fopen”。 是否发生了一些碰撞,因为这里有许多插件?

1 个答案:

答案 0 :(得分:1)

将此变量设置为符合您口味的变量:

let g:UltiSnipsExpandTrigger="<c-space>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigger="<c-k>"

阅读youcompleteme帮助,尤其是语义触发器:

:help ycm_semantic_triggers