ubuntu14.04 安装 YouCompleteMe 后,不起效果

2015-06-23 12:15:05 +08:00
 xixi10111011
ubuntu14.04

https://github.com/Valloric/YouCompleteMe
安装里面的installation 和 full installation都安装过一次了。

C语言工程
vim启动后,不起效果,-> . 和函数提示都没有。

:YcmDiags 没有错误提示,而且clang support为true。


有遇到过的么,听说这个插件很厉害,但没法亲自体验,真痛苦
10055 次点击
所在节点    Vim
17 条回复
guoqiao
2015-06-23 12:22:16 +08:00
先看看你的 vim 是什么版本
yangyanggnu
2015-06-23 12:26:57 +08:00
要运行 YCM 需要几个预备条件:
* vim 版本至少达到 7.3.584,且支持 python2,参照“源码安装编辑器 vim”部分可满足;
* 需要 clang 支持,且版本至少达到 3.3,参照“代码编译”部分可满足;

另外,YCM 的不同补全场景需要不同的要求:
0)YCM 的语义补全。YCM 不会在每次键入事件上触发语义补全,YCM 作者认为这会影响补全效率而且没什么必要(我持保留意见),YCM 只在如下两种场景下触发语义补全:一是补全标识符所在文件必须在 buffer 中(即,文件已打开);一是在对象后键入 .、指针后键入 ->、名字空间后键入 ::;
1)YCM 的标签补全。语义补全的确强大,但受限挺多,如果我要补全 STL 中的泛型算法 count_if() 岂不是还要先打开库头文件 algorithm?不用,YCM 也支持标签补全。要使用标签补全,你需要做两件事:一是让 YCM 启用标签补全引擎、二是引入 tag 文件;
2)YCM 的 OmniCppComplete 补全引擎。我要进行 linux 系统开发,打开系统函数头文件觉得麻烦(也就无法使用 YCM 的语义补全),引入系统函数 tag 文件又影响 vim 速度(也就无法使用 YCM 的标签补全),这种情况又如何让 YCM 补全呢?WOW,别担心,YCM 还有 OmniCppComplete 补全引擎,只要你在当前代码文件中 #include 了该标识符所在头文件即可。

https://github.com/yangyangwithgnu/use_vim_as_ide#5.4
sleeperqp
2015-06-23 12:27:36 +08:00
你设置了么?
aszxqw
2015-06-23 12:30:45 +08:00
YCM安装费劲的要死,反正我是早就放弃它了。
neilwong
2015-06-23 13:00:03 +08:00
话说安装YCM后当我用 -> 去调用一个对象的方法时,会卡好久,你们有这种情况吗
yangyanggnu
2015-06-23 17:31:24 +08:00
@neilwong

你的 libclang 用的是发行套件自带的还是 clang 官网预编译?YCM 作者强烈建议用后者。
icylord
2015-06-23 21:39:38 +08:00
换15.04 源里面可以直接装
xiaoxuxu
2015-06-23 22:39:08 +08:00
最后还需要一个.ycm_extra_conf.py指定头文件的路径,否则没法自动找到头文件的,里面可以加上类似:
'-isystem',
'/usr/include',
'-isystem',
'/usr/local/include',
以及自己工程的头文件。然后重新打开vim,就能补全了。
xixi10111011
2015-06-23 22:49:06 +08:00
@yangyanggnu
这个就是官方的full installation方法把,我按照这个方法走过了,还是不行。

YcmDiags显示

> Native filetype completion not supported for current file, cannot force recompilation.
> C文件 提示这个提示是不是有异常?
xixi10111011
2015-06-23 22:49:33 +08:00
@aszxqw 第一次遇到如此麻烦的vim插件
xixi10111011
2015-06-23 22:50:43 +08:00
@xiaoxuxu 直接copy的 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
theFool
2015-06-23 23:20:11 +08:00
用这个插件的朋友卡不卡?
本来vim是瞬间启动的,现在要1-2s.
写代码的过程中也会卡,有时候代码都敲完了补全还没出来。
是本来就这样还是没配置好?
yangyanggnu
2015-06-24 08:53:43 +08:00
@xixi10111011

你先确认 *.c 中是否含有系统无法识别的特殊字符(也许不可见),新建个 hello world 试试;

另外,拷贝过来的 .ycm_extra_conf.py 必须在 flags 中重新指定你系统 C 标准库头文件路径,类似:
'-I',
'/usr/include/c++/4.8/'
IndexXuan
2015-06-24 09:26:32 +08:00
感觉能使用必须
1. 安装后完整编译。
2. 按文档配置好extra_conf_py.(路径看好)
这插件安装后还要编译很久。刚开始也是补全的很少,基本只抽取页面里的(已经很强大了)。后把那个什么extra_py文件写入了配置(看文档)就好了。vim启动和使用速度依然给力,写别的语言也有他的功能,甚至配合js引擎也有很好的提示和补全。不过和utilsnips什么的有些冲突,配合supertab好了一些。ps 虚拟机开发环境
xixi10111011
2015-06-24 20:25:47 +08:00
@yangyanggnu

多谢回复
新建了一个hello world的main.c 也不行。
有两个奇怪的地方:
1. :YcmDiags 提示
Native filetype completion not supported for current file, cannot force recompilation.

2. 与main.c 同级的.ycm_extra_conf.py没有生成pyc文件,成功的情况下要有pyc吧?
yangyanggnu
2015-06-25 09:42:30 +08:00
@xixi10111011

添加至 .vimrc 中,确认 vim 是否提示加载 .ycm_extra_conf.py 文件:
let g:ycm_confirm_extra_conf=1
dcoder
2015-07-29 11:51:44 +08:00
@xixi10111011
现在设置得如何了? 我是直接用 vundle pull, 然后跑 .vim/bundle/YouCompleteMe/install.sh 编译的,
还行, 设置不算麻烦, 不过这个插件确实重, YouCompleteMe folder 就 200MB 左右, 因为已经提供 IDE 的 AST 功能了

不过我没太搞懂 python virtualenv 怎么跟它配合

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/200508

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX