作者回复: 无论如何,cscope没有使用的必要了吧,如果你用C++的话。如果用上编译数据库的话,YCM基本已经满足需求了。ctags和rtags勉强有部分补缺的作用,cscope我看不出来有啥用处。 类继承你是说查看有什么子类吗?这个在rtags里有,但如果要跟商业软件比界面的漂亮,那肯定是没戏的。 我试了你说的这个插件,还有点意思。但是,跟其他类似插件一样,单纯依赖名字的加亮,在C++里玩不转——把我的很普通的成员变量next都当成标准库里的函数名称来加亮了。 朴素点,不是为了朴素,而只是不愿看到错误行为时的无奈之举。如果有插件能进行完全正确的加亮,又不会拖慢编辑的速度,我干吗不用呢?;-)
作者回复: 这个命令本来就是设计用来输入符号的,如果是取光标下的符号,用 GoToDefinition 子命令不挺好? 如果是不想手工输入前面这串,可以类似这样定义: :nnoremap <Leader>gs :YcmCompleter GoToSymbol 这样,敲入 \gs 即可自动输入命令的前面部分。
作者回复: 把环境搞干净了(没有自己的特殊环境变量)再试试。这种有问题就要到网站上去问问了。 如果是Linux发布版,一般可能已经自带了。虽然可能版本偏老,应该肯定能装上。
作者回复: 我用过 Ubuntu 20.04,上面直接带的 YCM 版本比较老,是不支持这个功能的。自己安装新版本(需要自己运行 install.py 来安装 clangd)就可以。
作者回复: 拿同样环境的机器安装,然后把整个 .vim 目录复制过去。
作者回复: 请再仔细看看配置部分,我特地讲到了 .ycm_extra_conf.py 文件,及我为解决这个问题准备的 adah1972/ycmconf 插件。
作者回复: 没有比较。这个补全的方法不同,比较耗算力,而且对大项目是需要付费的,我没有尝试。 对于这类工具我持审慎怀疑:如果它真能预测得很好,那是不是说明代码中的重复有点多了? 不过,那只是个人没有使用过的瞎猜测。实践是检验真理的标准。你自己试试不就得了?适合自己的就是好的,适合你的不一定适合其他人,反过来也一样。
作者回复: 可能就是下载/网络出了问题。我目前试下来是可以成功的,clangd的URL跟你的完全相同。
作者回复: 在同样软件配置的机器上,使用git命令和安装命令,完全结束了(建议测试一下)再拷贝结果。 安装过程中也会下载东西的,所以不能在目标机上执行安装命令。
作者回复: 如果报的错是跟clang相关的话,可能是vim-youcompleteme没有正确地依赖到libclang1上。我在Ubuntu 20.04 LTS上碰到过,运行sudo apt install libclang1可以解决该问题。