关闭

Vim代码补全插件——YouCompleteMe使用指南

143人阅读 评论(0) 收藏 举报

一般语义补全

你可以在任何地方是使用Ctrl+Space来触发语义补全,甚至没有字符串前缀。对于那些最高级功能是非常有用的。

C家族语义补全

YCM在打开文件的目录下寻找.ycm_extra_conf.py,或者递归查找所在文件的任何上层目录。找到后,会加载它作为Python模块(仅一次)。YCM用于编辑当前文件的方法,是在提供所需信息的模块中调用FlagsForFile。你也可以提供.ycm_extra_conf.py的全局路径作缺省处理。为了防止文件中的恶意代码执行,YCM每次都会问你.ycm_extra_conf.py文件的加载是否安全。这项可以被警用,你可以写入white-/blacklist文件。更多的细节,请参见选项部分。

系统以这种方式设计,便于用户执行任意操作序列来生成编译标志的列表。

详见.ycm_extra_conf.py。你应该把使用它作为起点。别只复制/粘贴那个文件,并期望它能神奇的工作;你的项目需要不同标志。提示:仅替换你项目中必要的编译标志的字符串变量。对于99%的项目来说这就够了。

Clang的CompilationDatabase同样支持。请参见上面的链接。你用Cmake,在你的项目文件CMakeLists.txt中添加设置set( CMAKE_EXPORT_COMPILE_COMMANDS 1 )以生成文件。如果你不使用CMake,你可以使用像Bear生成compile_commands.json文件。

考虑使用YCM-Generator生成ycm_extra_conf.py文件。

如果Clang在编译头文件时遇到错误,可能需要很长时间才能完成。当补全最终显示的菜单时,将会有大量的无关补全的字符串(类型/功能都不匹配)。这是因为Clang不能建立预编译导码,如果头文件里有任何错误。前导码是快速补全的关键。

调用:YcmDiags命令以查看你的文件中是否有任何错误和警告。


1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:288次
    • 积分:24
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档