跟我一起学Vim补全神级插件--YouCompleteMe
近期重拾Vim,编译部署来补全插件YCM,这个插件的补全效果和在写C代码的时候的自己主动提示错误信息等还是十分棒的,写点心得下来,也算给自己做个备忘。
高速安装:
首先參考我的.vimrc配置,用Vundle安装好之后,进入YCM的目录.vim/bundle/YouCompleteMe会找到install.sh脚本文件。这个时候假设你须要C语言系的语义补全你须要在执行install.sh脚本之后手动增加命令--clang-completer,就可以进行自己主动安装,此时YCM会去Clang的官网去下载libclang.so来作为YCM语义补全的支持。
完整安装:
1.假设採用之前的方法不能进行安装的话能够进行自己的定制化安装,YCM是一个编译插件,因此须要进行手动编译。首先第一点就要确保你的Vim的最低版本号必须是7.3.584,而且支持python2。假设不支持,你必须自己手动编译一份Vim。(查看是否支持python2能够在Vim中输入:echo has('python')假设输出1就表示支持,0就表示这个时候你须要又一次编译了)
2.下载libclang.so,YCM作者推荐下载官方预编译 之后的libclang.so而不是用你系统自带的libclang,假设你真的要用自己的sysytem中的libclang须要保证版本大于等于3.3,否则会出现随机性的错误。
3.编译ycm_support_libs库。首先确保自己安装了python-dev有python的头文件,然后建立暂时目录ycm_build
cd ~
mkdir ycm_build
cd ycm_build
cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
用CMake完毕了生成Makefile的过程,注意这个过程是给那些不须要C语义补全的同学,假设你须要C的语义补全,步骤会略微麻烦点。你须要自己下载二进制发行版的LLVM+Clang或者自己手动编译LLVM和Clang,然后保证bin,lib,inclulde在文件夹根文件夹下比方ycm_temp/llvm_clang下,然后执行
cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/ycm_temp/llvm_root_dir . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
等待Makefile生成之后执行
make ycm_support_libs
即完毕了ycm_supprot_libs的编译,对于那些想用系统libclang的同学你须要传入-DUSE_SYSTEM_LIBCLANG=ON来替代-DPATH_TO_LLVM_ROOT的flag.假设你系统内有自己定义的libclang你也能够定义採用自己定义的libclang,-DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so.同一时候须要注意的是,假设你採用了Clang的语义补全支持,make命令也会把libclang复制一份放到YouCompleteMe/python以下来驱动YCM的执行。
使用:
完毕了YCM的编译就能够享受它给你带来的方便了,假设你须要C语言的语义补全,除了刚刚编译多出来的步骤之外,你还须要提供编译的flag给YCM才干进行真正的补全。YCM查找.ycm_extra_conf.py来进行补全支持,你也能够手动提供一个全局的.ycm_extra_conf.py路径来给YCM做缺省处理(YCM查找路径是依次从里到外的向上,假设找不到会採取默认的全局路径,我选择放在主文件夹以下,这样不须要设置全局路径,由于YCM始终能够找到它)。
此外说一下.ycm_extra_conf.py,对于一些简单的小项目,使用默认的文件就可以,对于默认文件我选择关闭了-Werror由于这样会给Vim提示语义准确的Syntastic带来困扰,另外我多加了一句-isystem,/usr/include/c++/4.8,由于我发现默认的ycm_extra_conf似乎找不到C++头文件。对于复杂项目来说,这个时候又须要借用我们强大的CMake了。CMake中有一个命令能够导出编译flag,-DCMAKE_EXPORT_COMPILE_COMMANDS=ON,这个时候CMake会把当前的编译flag所有导出到一个json数据库-compilation_commands.json,之后 我们须要手动给ycm_extra_conf.py中的compilation_database_folder一行 加入你数据库的位置,比方你在src,ycm_ectra_conf在你文件夹下,而你的json在build中,所以你须要写floder=./build,这个时候打开Vim,你会发现你的项目已经能够进行补全,我在进行Qt开发的过程中就是将CMake脚本维护好之后通过json来让YCM找到Qt的头文件从而进行补全,十分方便。
总结:都说Vim最强大的乐趣在于自由定制,我感觉从Vim定制的过程中也能够学习到非常多东西,也会这就是定制给我带来的真正乐趣,迫使我去学习,迫使我去尝试各种情况。我相信喜欢Vim定制的人不在少数,此文就当抛砖引玉,希望我的这篇文章能够帮助到你,同一时候也希望志同道合的朋友能够留下你的脚印,毕竟有你们的支持才干让我更有写作的动力。
跟我一起学Vim补全神级插件--YouCompleteMe相关推荐
- php vim 补全,Vim 不使用 tags 文件补全 PHP 代码
小朋友们大家好,还记得我是谁吗?对了!我就是爱折腾 VIM 的 vimer.今天要给大家讲一个 Vim 下代码补全的新故事. 记得前不久,我还给大家介绍过使用 ctags + Vim 来实现代码补全和 ...
- vscode自动加前缀_详解VScode自动补全CSS3前缀插件以及配置无效的解决办法
1.在vscode中搜索Autoprofixer 2.在安装完成之后要配置 在需要添加前缀的css文件上,右键点击命令面板,输入Autoprefixer CSS就好啦 ps: 如果想要兼容性最好的话, ...
- Chrome居然是学术利器?一口气推荐15个神级插件赋能科研之路
关注"心仪脑"查看更多脑科学知识的分享. 关键词:chrome.学术利器.神级插件 1. 科研学术利器(推荐等级最高5颗星) EndNote Click (原Kopernio) ★ ...
- ps抠头发插件_「福利」PS抠图神级插件——VertusFluid Mask
有小伙伴跟我咨询一些摄影技巧,摄影后期,旅游攻略等方面的问题,以前都是谁问我我回答一次,后来发现同一个问题不止一个人问,所以就建个群! 粉丝群:QQ群:212183200 微信群请点击微信公众号:鸟看 ...
- 一款语文老师写的word办公神级插件
没错,正如题所说,这是一款语文老师开发的word办公神级插件----不坑盒子,小编体验了一下还真是太强大了! 双击exe文件,选择任意安装目录即可开始安装 如果你的电脑缺少运行库,软件会自动帮你下载安 ...
- 神级插件Bito介绍及使用
还在用其他AI?不是说它不火了,而是你基本上很难访问了.这里介绍个便宜且免费的AI聊天插件,一样可以很棒.永久免费且不限制次数,有这好事?且听下文分解. 前言 虽然GPT 是用不了,推荐下国内的一些大 ...
- vim补全html标签,vim括号引号html标签自动补全
(我现在已经不用下面方法了,可使用 xptemplate插件 http://blog.csdn.net/zcube/article/details/42525973) 问题:怎样在vim中实现花括号引 ...
- VisualStudio神级插件Resharper技巧基础入门到骨灰玩家使用全教程+Resharper性能优化
我相信很多做.NET开发的童鞋应该都装了Resharper这个重量级插件,但在我的印象里很多人也就只用到了他的一些基本功能,可能算是大材小用了吧,某天,在跟一同事进行结对编程的时候,看到同事也安装了R ...
- Idea代码自动补全,良心插件推荐:Codota,再也不用担心写不出代码了。
这款插件就是 Codota.基于AI技术,通过对大量开源的项目学习,帮助开发者提供更可靠的智能推荐,让编程变得更easy! 官网:https://www.codota.com 看官方发现,目前支持的语 ...
- VS Code写Python智能提示,代码自动补全(Kite插件)
之前写python代码一直用的是VS Code,但是这款免费的IDE并没有针对python的智能提示,搜索了一些插件后发现智能提示也不好用,远没有Visual Studio之类写C++时的提示好用. ...
最新文章
- 强力攻城狮的职位要求...
- python教程:__file__、__name__、__dict__三个方法的作用
- Android游戏开发基础part3--Paint 画笔
- Java中stringbutter_java中string与ButterString的区别
- postman启动没反应_电脑主机开机但显示器没反应?检查这4个地方,2分钟内找出问题...
- 自建服务器调试,Mac简单实现服务器搭建(本地)与iOS调试
- ATEN瞄准专业级影音市场,发表全新VanCryst™视频系列产品线
- UVA 10733 - The Colored Cubes(Ploya)
- 股票历史数据-股票历史数据查询
- IDEA初始jsp模板和修改jsp模板
- 软件质量管理体系 type:pdf_广河iso14001环境管理体系各种荣誉资质 - 广河商业服务...
- 第3关:HTML表格:日常消费账单表格展示网页
- vue在日历中使用 tippyjs 来做悬浮弹框自定义插入html
- 1.26赛尔号服务器维护时间,赛尔号稀有精灵出现时间大全(完全版)
- 登录公司邮箱服务器怎么选,企业邮箱怎么选
- 用opencv将左右眼视角图片转换为红蓝3D图片
- Dubbo-接口数据序列化Serialization
- safari打开图片链接显示问题
- Win11包含APPX驱动重装及备份教
- Callbacks API-EarlyStopping