我在使用带有vim的omnicppcomplete时遇到了问题。实际上,我不确定它是.vimrc问题还是omnicppcomplete问题。在我的.vimrc中,当我按下ctrl + F12时,我有这个命令为我的项目生成标签:
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
它生成一个标记文件,一切似乎都运行得很好。因此,将其映射到密钥的一些事情正在弄乱它。我按照维基上的说明进行操作:http://vim.wikia.com/wiki/C%2B%2B_code_completion。
当我不使用它时,我很担心它为什么抱怨--c ++ - n。非常感谢任何帮助。
编辑:
vim中的“:!which ctags”和shell中的“which ctags”返回“/ usr / bin / ctags”。但是,当我执行“ls / usr / bin | grep ctags”时,它会返回“ctags”和“ctags-exuberant”。
我删除并重新安装了ctags-ecuberant。现在,当我尝试在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来构建标记列表,自动完成工作正常......如果我有一个在另一个文件中定义的类(尽管仍然在同一个目录中),我希望它能工作。
答案 0 :(得分:4)
问题不在于键映射。如果我将你的映射行复制到我的.vimrc
并在gvim中点击ctrl-f12,它会回显它运行的命令,它正好是上面的命令。
可能是因为在vim中,ctags
是另一个文件/可执行文件吗? :!which ctags
在vim中说什么以及which ctags
在shell中说了什么?
答案 1 :(得分:1)
我重新安装了旺盛的ctags并解决了问题。