如何强制 YouCompleteMe 完成代码,尤其是 snip complete?
How to force YouCompleteMe to complete code, especially snip complete?
这是我的问题的图片
这是我的 .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" 从一个选择移动到另一个,问题是我应该点击什么来扩展 "snip" 一个的补充( [tab] 不能接受完成,什么valloric said in user guide)?
另一个问题是为什么我不能让你完成我来完成一个功能,一个class?在这种情况下,我想我的youcompleteme 完成了一个函数"fopen"。
是不是发生了一些碰撞,因为这里有很多插件?
将此变量设置为适合您口味的值:
let g:UltiSnipsExpandTrigger="<c-space>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigger="<c-k>"
阅读你的完整帮助,尤其是关于语义触发器的帮助:
:help ycm_semantic_triggers
这是我的问题的图片
这是我的 .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" 从一个选择移动到另一个,问题是我应该点击什么来扩展 "snip" 一个的补充( [tab] 不能接受完成,什么valloric said in user guide)? 另一个问题是为什么我不能让你完成我来完成一个功能,一个class?在这种情况下,我想我的youcompleteme 完成了一个函数"fopen"。 是不是发生了一些碰撞,因为这里有很多插件?
将此变量设置为适合您口味的值:
let g:UltiSnipsExpandTrigger="<c-space>"
let g:UltiSnipsJumpForwardTrigger="<c-j>"
let g:UltiSnipsJumpBackwardTrigger="<c-k>"
阅读你的完整帮助,尤其是关于语义触发器的帮助:
:help ycm_semantic_triggers