我已经尝试了好几个小时才能获得Vim的YouCompleteMe插件,以识别我的旺盛ctags。 YouCompleteMe中的其他所有功能似乎都可以正常工作,例如标头中的自动完成功能等。我真的希望它默认为标记文件。下面我列出了我的.vimrc测试标签文件,该文件位于~/.vim/tags/

这是我的testtags文件

!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR    Darren Hiebert  /[email protected]/
!_TAG_PROGRAM_NAME  Exuberant Ctags //
!_TAG_PROGRAM_URL   http://ctags.sourceforge.net    /official site/
!_TAG_PROGRAM_VERSION   5.9~svn20110310 //
myfunc  test.h  /^void myfunc(int a, int b);$/;"    p   language:C++


testtags文件是使用命令ctags -R --sort=1 --fields=+l --c++-kinds=+p -f testtags test.h生成的

和我的.vimrc文件在这里

syntax on
filetype off

set runtimepath+=~/.vim/bundle/vundle/
call vundle#rc()

Bundle 'gmarik/vundle'
Bundle 'Valloric/YouCompleteMe'

let g:ycm_collect_identifiers_from_tags_files = 1
set tags+=~/.vim/tags/testtags

filetype plugin indent on


输入vim命令:echo tagfiles()的输出是['/home/jodag/.vim/tags/testtags'],命令:set filetype?filetype=cpp。这意味着YCM正在查找标记文件并认识到我当前正在编辑c ++源文件,但是按Ctrl + Space时它不会显示myfunc完成。找出原因的任何帮助将不胜感激!

最佳答案

因此,在发布到YCM问题跟踪器后,我想出了解决方案。显然,仅在未按下ctrl+space时才读取标签文件。

09-25 20:25