安装YCM

YCM是一个基于语义的 Vim 插件,提供随键补全、模糊搜索和高速补全等功能。然而,由于依赖libclang生成的语义树,可能导致内存占用高,尤其在旧机器上。安装步骤包括先决条件判定、安装libclang(推荐使用LLVM预编译二进制文件)和编译YCM支持库。对于32位系统,可能需要重新编译clang。完成编译后,会在指定目录生成ycm_client_support.so、ycm_core.so和libclang.so文件,实现vim的高效补全功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

YCM是一个基于语义的补全的插件,它至少有三大特性:

1.支持随键补全

2.支持模糊搜索

3.高速补全

上面是YCM的优点,但在使用过程中,YCM有一个对于老机器来说致命的缺陷,由于YCM补全基于libclang生成的语义树,

因此占用的内存非常高,在我的笔记本电脑上,一个简单的cpp文件会占用60%以上的内存,因为启动vim的时候,它会

分析源文件,以及与源文件相关的文件,并生成语法树载入内存,导致vim卡顿,此时需要wait a moment,vim响应之后就好了。

安装:

1.先决条件判定

2.安装libclang

YCM强调使用LLVM官网提供的预编译二进制文件。

我下载之后,在其lib目录下,执行file libclang.so 查看libclang.so的类型发现:

libclang.so: ELF 64-bit LSB shared object, x86-64.....

接下来在编译编译总出现问题,具体原因,我现在没有查找出来,这和我的机器相关,因为我的机器是32位的比较老的Dell D630。

最终我使用的解决办法是重新下载源码重新编译clang,并安装,之后使用安装的clang的根目录作为编译环境,最终编译成功

具体编译方法参考:LLVM每日谈

不过,我执行了make install 对llvm进行了安装,此时llvm被安装在/usr/local/目录下

3.编译YCM支持库

cd /usr/local/
mkdir ycm_build 
cd ycm_build 
cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=~/usr/local/ . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
make ycm_support_libs

最终在~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp目录中生成了ycm_client_support.so、ycm_core.so、libclang.so三个共享库文件,编译成功。

具体可以参考:

所需即所获:像 IDE 一样使用 vim


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值