让 vim 的 YouCompleteMe 插件识别旺盛的 ctags

Make vim's YouCompleteMe plugin recognize exuberant-ctags

本文关键字:识别 ctags 插件 vim YouCompleteMe      更新时间:2023-10-16

我已经尝试了几个小时来获得 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  /dhiebert@users.sourceforge.net/
!_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+空格键时不会显示myfunc完成。任何帮助弄清楚为什么会发生这种情况将不胜感激!

所以我在YCM问题跟踪器上发布后找到了解决方案。显然,只有在未按下ctrl+space时才读取标签文件。