1
guoqiao 2015-06-23 12:22:16 +08:00
先看看你的 vim 是什么版本
|
2
yangyanggnu 2015-06-23 12:26:57 +08:00 3
要运行 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 |
3
sleeperqp 2015-06-23 12:27:36 +08:00
你设置了么?
|
4
aszxqw 2015-06-23 12:30:45 +08:00
YCM安装费劲的要死,反正我是早就放弃它了。
|
5
neilwong 2015-06-23 13:00:03 +08:00
话说安装YCM后当我用 -> 去调用一个对象的方法时,会卡好久,你们有这种情况吗
|
6
yangyanggnu 2015-06-23 17:31:24 +08:00
|
7
icylord 2015-06-23 21:39:38 +08:00
换15.04 源里面可以直接装
|
8
xiaoxuxu 2015-06-23 22:39:08 +08:00
最后还需要一个.ycm_extra_conf.py指定头文件的路径,否则没法自动找到头文件的,里面可以加上类似:
'-isystem', '/usr/include', '-isystem', '/usr/local/include', 以及自己工程的头文件。然后重新打开vim,就能补全了。 |
9
xixi10111011 OP @yangyanggnu
这个就是官方的full installation方法把,我按照这个方法走过了,还是不行。 YcmDiags显示 > Native filetype completion not supported for current file, cannot force recompilation. > C文件 提示这个提示是不是有异常? |
10
xixi10111011 OP @aszxqw 第一次遇到如此麻烦的vim插件
|
11
xixi10111011 OP @xiaoxuxu 直接copy的 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
|
12
theFool 2015-06-23 23:20:11 +08:00
用这个插件的朋友卡不卡?
本来vim是瞬间启动的,现在要1-2s. 写代码的过程中也会卡,有时候代码都敲完了补全还没出来。 是本来就这样还是没配置好? |
13
yangyanggnu 2015-06-24 08:53:43 +08:00 1
@xixi10111011
你先确认 *.c 中是否含有系统无法识别的特殊字符(也许不可见),新建个 hello world 试试; 另外,拷贝过来的 .ycm_extra_conf.py 必须在 flags 中重新指定你系统 C 标准库头文件路径,类似: '-I', '/usr/include/c++/4.8/' |
14
IndexXuan 2015-06-24 09:26:32 +08:00
感觉能使用必须
1. 安装后完整编译。 2. 按文档配置好extra_conf_py.(路径看好) 这插件安装后还要编译很久。刚开始也是补全的很少,基本只抽取页面里的(已经很强大了)。后把那个什么extra_py文件写入了配置(看文档)就好了。vim启动和使用速度依然给力,写别的语言也有他的功能,甚至配合js引擎也有很好的提示和补全。不过和utilsnips什么的有些冲突,配合supertab好了一些。ps 虚拟机开发环境 |
15
xixi10111011 OP @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吧? |
16
yangyanggnu 2015-06-25 09:42:30 +08:00
|
17
dcoder 2015-07-29 11:51:44 +08:00
@xixi10111011
现在设置得如何了? 我是直接用 vundle pull, 然后跑 .vim/bundle/YouCompleteMe/install.sh 编译的, 还行, 设置不算麻烦, 不过这个插件确实重, YouCompleteMe folder 就 200MB 左右, 因为已经提供 IDE 的 AST 功能了 不过我没太搞懂 python virtualenv 怎么跟它配合 |