为Vim配置omnicompletion和ctags问题

4

我刚开始学习使用vim半个月,因为我想用它来编写C++代码,所以我安装了omnicompletion以自动完成代码。

然而,当我按照omnicppcomplete.txt上的说明操作时(我下载了Exuberant Ctags并使用"./configure && make && sudo make install"命令进行安装),我发现它仍然弹出错误(ctags -R非法命令),为避免使用我的Mac已经拥有的ctags,我在我的.zshrc文件中添加了"export PATH=/usr/local/bin:$PATH",并在我的.vimrc文件中添加了"let Tlist_Ctags_Cmd='/usr/local/bin/ctags'"。

然而,我仍然无法运行命令"ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .",显示错误信息 illegal ctags -R。有谁能帮忙解决这个问题吗?非常感谢!


2
你是从vim还是从shell中运行该命令?在Vim中输入:echo $PATH,在shell中输入$ echo $PATH,分别输出什么? - romainl
很奇怪。:echo $PATH 是一个“经典”。尝试使用 :echo $,然后按 <tab> 键查看所有可用的环境变量。 - romainl
哎呀,上次可能我犯了个错误,我在vim中尝试了一下,它显示的是这样的:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/texbin@romainl。 - Jiahui Guo
我有点迷失了。你在安装后打开了一个新的 shell 吗?尝试在你的 shell 中输入 $ which ctags 和/或 $ /usr/local/bin/ctags。如果它找不到 ctags,那就意味着你安装失败了。 - romainl
1
忘记omnicppcomplete,转而使用clang_complete。请参考官方网站(https://github.com/Rip-Rip/clang_complete)和这里(http://blog.msoares.pro.br/archives/quick-recipe-to-enable-clang_complete-on-vim)的说明。 - milton
显示剩余5条评论
1个回答

1

问题在于您正在使用 Mac,并应该使用 MacPorts 来覆盖 OSX 标准的 ctags,而不是使用自定义构建的 ctags。这样应该可以让您重新回到正轨。

  • 卸载您从源代码构建的ctags:在构建它的src目录中尝试

    sudo make uninstall

  • 安装端口后打开一个新的shell(从.profile/.zshrc等加载新的系统配置)

  • 接下来,从端口存储库安装ctags,因此首先安装Mac Ports,然后通过端口安装ctags:

    sudo port install ctags

  • 如果您已将端口的默认安装位置用于端口,则您的shell-rc文件应将PATH指向/opt/local/bin。 您的ctags(带有-R支持)应位于(/opt/local/bin/ctags),但为了确保100%,请通过键入检查系统找到它的位置:

    which ctags

    应该给你

    /opt/local/bin/ctags

  • 现在从vim中检查您的PATH(:echo $PATH),它应该在前面加上端口目录(/opt/local/bin)。

为了测试vim中的代码完成(而不是自动完成),假设vim指向适当的:tags文件(请阅读:tags帮助),您无需安装任何东西。

  • 只需在插入模式下键入Ctrl-N,可能的标识符列表就会弹出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接