Jin*_*uan 10 vim ubuntu plugins
我根据Github上的介绍编译并安装了Vim,Vundle和YouCompleteMe插件.但是YouCompleteMe插件在我的Vim中效果不佳.它可以自动完成变量的名称,但不会自动完成STL对象(矢量,地图)的操作.它甚至无法在课堂上自动完成"this->".它总是告诉我"(^ U ^ N ^ P)模式未找到." 你们之前见过这个吗?我使用的是Ubuntu 12.04.我该怎么办?
关于插件的github repo的自述文件现在解决了这个问题.
这是由libclang的问题引起的.从clang编译二进制文件使用正确的默认标头搜索路径,但从libclang.so编译不会.这个问题似乎比其他操作系统更能影响某些操作系统.看起来OS X Mavericks尤其存在问题.
目前的解决方法是调用echo | clang -v -E -x c ++ - 并查看#include <...>搜索下的路径从这里开始:标题.您应该采用这些路径,在每个单独的路径前加上系统,并将它们全部附加到您从.ycm_extra_conf.py文件中的FlagsForFile函数返回的标志列表中.
您可能还想查看相应的问题
小智 3
我来这里也是为了寻找答案,我不懂Python,以前也从未接触过其他东西。这就是我的做法。
找到错误信息。我转到 ~/.vim/bundle/YouCompleteMe 并查找“builtinincludes”。为什么?因为这是错误消息的一部分
修改错误消息以确保该文件正在运行(我的姓名首字母 NxD)- 有效。
getBuiltinHeaderPath 在已知目录上运行循环。我有 2 个 clang 安装
我将两个路径添加到该数组中:knownPaths
"/usr/local/include",
"/usr/local/lib/clang/3.3",
"/home/nxd/Downloads/clang+llvm-3.2-x86_64-linux-ubuntu-12.04/clang/3.2"
Run Code Online (Sandbox Code Playgroud)
我注意到“,”是Python中数组元素的分隔符。我之前还注意到 print -> 在 python 中输出一条消息,参数是 c 风格的 %s、%d 等工作 - (这就是“内置包含”消息首先出现在屏幕上的方式)
我还将一些打印语句转储到循环中,以便查看它看到了什么以及它在做什么。
部分代码修改函数“getBuiltinHeaderPath”
print "active path from knownPaths is |%s|" %path
files = os.listdir(path)
print " files in path is |%s|" % files
print " len (files) is |%d|" % len(files)
if len(files) >= 1:
files = sorted(files)
subDir = files[-1]
else:
subDir = '.'
# nxd -
subDir = '.'
path = path + "/" + subDir + "/include/"
print " len (files) is |%d|" % len(files)
print " files[-1] is |%s|" % files[-1]
print "searching in path : |%s| " % path
Run Code Online (Sandbox Code Playgroud)我意识到 files[-1] 的预期行为不是作者的意图,并在 if 条件之后对其进行了修改以保持不变。
使用新的 cpp 文件重新启动 vim 并查看 :messages - 它有效。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
6243 次 |
| 最近记录: |