首页 vim之clang补全

vim之clang补全

举报
开通vip

vim之clang补全 VIM自动补全之Neocomplcache+clang_complete August 30, 2012 目录 1 VIM自动补全现状 1 2 Gccsence and Clang-complete 2 3 Neocomplcache和clang-complete的融合 3 1 VIM自动补全现状 VIM以其灵活和高度可配置性,深受一部分程序员(尤其是工作在Linux的同仁)的 喜爱。但是VIM的自动补全,不像IDE那样强大,例如Visual Studio的VAssit X就非常强 大。自从使用VIM起...

vim之clang补全
VIM自动补全之Neocomplcache+clang_complete August 30, 2012 目录 1 VIM自动补全现状 1 2 Gccsence and Clang-complete 2 3 Neocomplcache和clang-complete的融合 3 1 VIM自动补全现状 VIM以其灵活和高度可配置性,深受一部分程序员(尤其是工作在Linux的同仁)的 喜爱。但是VIM的自动补全,不像IDE那样强大,例如Visual Studio的VAssit X就非常强 大。自从使用VIM起,我们一直寻找着能够接近IDE补全的插件。一般的插件都是在词法 上对代码进行补全,例如VIM自带的补全(C-p,C-n),其他的带有语义分析的如Omni- Complete,需要使用ctags,而且当代码发生改变后不能及时更新,需要手动更新ctags, 快捷键有C-n,C-U,C-O等,其他有对函数定义回显的echofunc,还有code_ complete等的 插件。这些补全的快捷键,都不是很方便,可以安装supertab插件把快捷键映射到tab键 上,使用起来就很顺手了。以上插件有一个共同的特点,不能自动弹出补全窗口,需要输 入者手动按快捷键,虽然实际效果是一样的,但自动弹出补全窗口在心理效果上却给人 以安全感。之后我找到了Neocomplcache,这个用起来很顺手,他能自动弹出窗口,拥有 omni的补全功能、文件名补全功能等,虽然也能在语义上对代码进行分析和补全,但是只 是对当前缓冲区的内容进行补全,对其他缓冲区或没有使用vi打开的文件,不具有自动补 全功能。以上所有插件都可在"www.vim.org"上搜索获得。我们迫切的需要一种能在语义 上,对当前文件以及其所依赖项中的所有内容进行补全的插件。 1 2 Gccsence and Clang-complete 两者都是利用编译器的语法、语义分析功能,利用语法分析与语义分析建立的语法 树(学过编译原理的同学应该都了解)对代码进行补全。gccsence使用的是gcc编译器系 列,但是使用起来会遇到版本的问题,对较新的gcc版本支持不够。一下是网友的论述: 与clang_complete相似的还有gccsense,这两者相比,clang_complete更优, 因为gccsense是通过hack gcc的方法来提供更多的补全信息,由于gcc涉及的面 太广,不太可能在各大linux版本中使gccsense需要的custom build称为默认的 发行版本;另外,gccsense目前根本不能在windows下编译通过- -b。 clang是一个另类的编译器,其主要目的就是使抽象语法树(AST)能更容易 的为外部工具所使用,由于其目的与gcc不同,clang被设计为快速编译以及低内 存消耗,事实上clang也比gcc速度更快。 Clang据说是当今世界上最优秀的C/C++编译器,当然是仁者见仁,智者见智了。我一般在 Linux使用vim,现在仅介绍一下该平台下的clang-complete的安装。安装需要如下几步: 1. 去官网http://llvm.org/releases/下载源码包进行编译或者下载编译好的2.8版本 (注意选择对平台),将libclang.so拷贝到/usr/lib(或其他在LD_LIBRARY_PATH 中的文件夹)中。 2. 去www.vim.org搜索clang,下载该插件,按照该插件的说明进行安装。这个插件的 项目开发仓库位于https://github.com/Rip-Rip/clang_complete。也可以去这里下 载。 3. 接下来是配置,需要在你要编辑的c/cpp等文件所在目录或者root,建立一个名 为’.clang_complete’的文件,里面的内容就是你用clang编译成功时的命令行的-I 命令的集合,如: -I /lib/boost_xxx -I C:/MinGW/lib/gcc/mingw32/xxx/include 4. 为了加快速度,打开.vimrc,在里面加上以下命令启用它: let g:clang_use_library=1 clang-complete补全的快捷键是C-U,C-X,这与neocomplcache存在冲突。如何解决两者冲 突是需要仔细考虑的问题。 2 3 Neocomplcache和clang-complete的融合 在neocomplcache项目中提供了一个 clang_complete的修改版,作为neocomplcache 的插件发布,git仓库地址为https://github.com/Shougo/neocomplcache-clang.git,使 用git clone到本地。但是安装这个之前,需要满足依赖项, This plugin requires |neocomplcache| plugin.https://github.com/Shou- go/neocomplcache Please install before. And requires clang executable file in $PATH. http://clang.llvm.org/ 其实对clang可执行文件的话,只要把动态库放到LD_LIBRARY_PATH中就行了。而对于Neo- complcache可以通过git仓库,亦可以通过vim.org上的插件。将clone得到的仓库下的子 目录“source”里的clang_complete文件夹和clang_complete.vim拷贝到/�.vim/autoload/ neocomplcache/sources下。然后如上文修改.vimrc文件即可。 下面是使用该补全组合的截图: 图 1: 示例一 3
本文档为【vim之clang补全】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_367883
暂无简介~
格式:pdf
大小:97KB
软件:PDF阅读器
页数:3
分类:互联网
上传时间:2012-08-30
浏览量:12