Search code examples
vimyoucompleteme

How to force YouCompleteMe to complete code, especially snip complete?


This a picture my issue looks like

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

THIS is my .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>"

It was shown in this picture after my tapping of "fo". Then, what I can do is to tap "Tab" to move from a choice to another, the question is what should I tap to expand the complement for a "snip" one(a [tab] can't accept the completion, as what valloric said in user guide)? The other question is why I can't make youcompleteme to complete a function, a class? In this case, I suppose my youcompleteme to complete a func "fopen". Is some collision happened, since here are to many plugins?


Solution

  • Set this variables to something that fits your taste:

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

    Read youcompleteme help, especially about semantic triggers:

    :help ycm_semantic_triggers