2013-07-10 94 views
0

我在使用omnicppcomplete与vim时遇到问题。其实,我不确定它是一个.vimrc问题还是一个omnicppcomplete问题。在我的.vimrc,我有这个命令来为我的项目的标签,当我按Ctrl + F12:Vim键映射错误

map <C-F12> :!ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q .<CR> 

但它失败,此错误:

ctags: Unknown option: --c++-n 

shell returned 1 

这似乎很奇怪,我因为我不在命令中使用--C++ - n选项。什么是更奇怪,我是说如果我只是在我的终端

ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q 

手动运行该命令它会产生一个标签文件,一切似乎工作得很好。因此,将它映射到一个关键的东西就是搞砸了。我按照wiki上的说明操作:http://vim.wikia.com/wiki/C%2B%2B_code_completion

我很困惑为什么它会抱怨--C++ - n当我不使用它。任何帮助深表感谢。

编辑:

两者 “:其C标签” 在vim和 “的C标签” 在shell回报 “的/ usr/bin中/ CTAGS”。但是,当我执行“ls/usr/bin | grep ctags”时,它会同时返回“ctags”和“ctags-exuberant”。

我删除并重新安装了ctags-exuberant。现在,当我尝试在vim中使用c-F12时,它不会给我一个命令上的错误......它将我带回到shell中以按Enter继续,但在代码中,当我在对象,它仍然会显示“未找到模式”。

但是,如果我做这样一个小的测试文件中的一个单独的目录:

struct MyStruct { 
    int a; 
    int b; 
    int long_name; 
}; 

int main(int argc, char** argv) { 

    MyStruct a; 
    a.  
} 

命中C-F12构建标记列表,自动完成的作品就好了......我希望它如果我有一个在另一个文件中定义的类(尽管在同一目录中),则工作。

回答

1

我重新安装了繁重的ctags,问题已解决。

4

问题不是关键映射。如果我将你的映射行复制到我的.vimrc并在gvim中按下ctrl-f12,它会回应它运行的命令,这正是上面的命令。

难道是在vim中,01​​是另一个文件/可执行文件吗? :!which ctags在vim中说什么,which ctags在shell中说什么?

+1

我的猜测是繁盛的ctags vs正常的ctags – FDinoff

+0

感谢您的反馈。我根据你的要求更新了我的答案。 – Sterling