[英]Vim key mapping error
我在使用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
它会生成一个标记文件,并且一切似乎都可以正常工作。 因此,将其映射到键的某些事情将其弄乱了。 我按照以下Wiki上的说明进行操作: http : //vim.wikia.com/wiki/C%2B%2B_code_completion 。
我最困惑的是为什么我不使用它时会抱怨--c ++-n。 任何帮助深表感谢。
编辑:
vim中的“:!哪个ctags”和shell中的“哪个ctags”都返回“ / usr / bin / ctags”。 但是,当我执行“ ls / usr / bin | grep ctags”时,它同时返回“ ctags”和“ ctags-exuberant”。
我删除并重新安装了ctags-exuberant。 现在,当我尝试在vim中命中c-F12时,它没有给我命令上的错误...它使我回到外壳中,按Enter继续,但是在代码中,当我在对象,它仍然显示“未找到模式”。
但是,如果我在单独的目录中制作了一个像这样的小测试文件:
struct MyStruct {
int a;
int b;
int long_name;
};
int main(int argc, char** argv) {
MyStruct a;
a.
}
点击c-F12来构建标签列表,自动完成工作就很好了……如果我有一个在另一个文件中定义的类(尽管仍然在同一目录中),我希望它能够工作。
问题不在于键映射。 如果我将映射行复制到我的.vimrc
并在gvim中命中ctrl-f12,它将回显它运行的命令,而这恰恰是上面的命令。
难道是在vim中, ctags
对您来说是另一个文件/可执行文件? :!which ctags
在vim中说了什么, which ctags
在shell中说了什么?
我重新安装了茂盛的ctags,问题已解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.