第一次听说这个插件还是在偶然的情况下看到别人的博客,听说了这个插件的大名。本来打算在实训期间来完成安装的,无奈网实在不给力,也就拖到了回家的时候。在开始准备工作的时候就了解到这个插件不是很容易安装,安装的时候果然名不虚传。(关于这方面的内容,请查看另一篇文章)不过,有付出总有回报,安装之后用上这个插件,真心为这个插件的强大所折服。 那这个插件有何不同? YouCompleteMe的特别之处基于语义补全总所周知, 针对文本自动补全这个功能来说,主要有两种实现方式。
我们常用的 猜其通过文本进行一些正则表达式的匹配,再根据生成的tags(利用
顾名思义,其是通过分析源文件,经过语法分析以后进行补全。由于对源文件进行分析,基于语义的补全可以做到很精确。但是这显然是vim所不可能支持的。而且经过这么多年发展,由于语法分析有很高的难度,也一直没有合适的工具出现。直到,由apple支持的 整合实现了多种插件
支持语言
对于其他的语言,会调用vim设置的 已知的有 * javascript —-tern_for_vim * ruby/java —-eclim 使用效果图使用感受
安装说完了那么多好处,就要说到安装了。不同于以往其他vim插件,YCM是一款编译型的插件。在下载完后,需要手动编译后才能使用。对应其他的插件来说,仅仅就是把.vim的文件丢到相应文件夹下就可以。而这也加大了使用YCM的难度。 安装准备
mac下快速安装在
保存退出后打开vim,在正常模式下输入
等待 而后进行编译安装:
如果不需要c-family的补全,可以去掉 正常来说,YCM会去下载clang的包,如果已经有,也可以用系统 就这样,安装结束。打开vim,如果没有提示YCM未编译,则说明安装已经成功了。 手动编译安装安装的脚本并不是什么时候都好用,至少对我来说是这样的。安装完之后出现了问题,参考issue#809。 在用
获取最新的仓库,而后使用
这样就完成了,开始感受YCM提供的完全不逊色于大型IDE所提供的自动补全功能吧。 配置不同于很多vim插件,YCM首先需要编译,另外还需要有配置。在vim启动后,YCM会找寻当前路径以及上层路径的 一般来说,我会在
YouCompleteMe提供的其他功能YCM除了提供了基本的补全功能,自动提示错误的功能外,还提供了类似tags的功能:
可以在.vimrc中配置相应的快捷键。
另外,YCM也提供了丰富的配置选项,同样在.vimrc中配置。具体请参考
同时,YCM可以打开location-list来显示警告和错误的信息
YCM提供的跳跃功能采用了vim的 总结
抛弃Vim自带的坑爹的补全吧,抛弃 在安装过程中,我也遇到了不少的坑。一会会发一篇解决这些坑的文章。 最后祝大家码年顺利,一码平川,码到功成。 |
|