ubuntu14.04 安装 YouCompleteMe 后,不起效果 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xixi10111011
V2EX    Vim

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

  •  
  •   xixi10111011 2015-06-23 12:15:05 +08:00 10545 次点击
    这是一个创建于 3832 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ubuntu14.04

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

    C语言工程

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


    有遇到过的么,听说这个插件很厉害,但没法亲自体验,真痛苦
    第 1 条附言    2015-06-23 22:35:19 +08:00
    搞错了 YcmDiags显示

    > Native filetype completion not supported for current file, cannot force recompilation.
    > 这个提示是不是有异常?

    是YcmDebugInfo显示没有错误

    Printing YouCompleteMe debug information...
    -- Server has Clang support compiled in: True
    -- Clang version: clang version 3.6.1 (tags/RELEASE_361/final)
    -- Server running at: http://127.0.0.1:35255
    -- Server process ID: 3285
    -- Server logfiles:
    -- /tmp/ycm_temp/server_35255_stdout.log
    -- /tmp/ycm_temp/server_35255_stderr.log
    第 2 条附言    2015-06-24 23:31:10 +08:00
    Thanks all. Problem solved.


    rm .vimrc
    rm -rf .vim
    re-install

    以上,可能是当时vundle安装的YCM有问题。
    17 条回复    2015-07-29 11:51:44 +08:00
    guoqiao
        1
    guoqiao  
       2015-06-23 12:22:16 +08:00
    先看看你的 vim 是什么版本
    yangyanggnu
        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
    sleeperqp
        3
    sleeperqp  
       2015-06-23 12:27:36 +08:00
    你设置了么?
    aszxqw
        4
    aszxqw  
       2015-06-23 12:30:45 +08:00
    YCM安装费劲的要死,反正我是早就放弃它了。
    neilwong
        5
    neilwong  
       2015-06-23 13:00:03 +08:00
    话说安装YCM后当我用 -> 去调用一个对象的方法时,会卡好久,你们有这种情况吗
    yangyanggnu
        6
    yangyanggnu  
       2015-06-23 17:31:24 +08:00
    @neilwong

    你的 libclang 用的是发行套件自带的还是 clang 官网预编译?YCM 作者强烈建议用后者。
    icylord
        7
    icylord  
       2015-06-23 21:39:38 +08:00
    换15.04 源里面可以直接装
    xiaoxuxu
        8
    xiaoxuxu  
       2015-06-23 22:39:08 +08:00
    最后还需要一个.ycm_extra_conf.py指定头文件的路径,否则没法自动找到头文件的,里面可以加上类似:
    '-isystem',
    '/usr/include',
    '-isystem',
    '/usr/local/include',
    以及自己工程的头文件。然后重新打开vim,就能补全了。
    xixi10111011
        9
    xixi10111011  
    OP
       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
        10
    xixi10111011  
    OP
       2015-06-23 22:49:33 +08:00
    @aszxqw 第一次遇到如此麻烦的vim插件
    xixi10111011
        11
    xixi10111011  
    OP
       2015-06-23 22:50:43 +08:00
    @xiaoxuxu 直接copy的 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
    theFool
        12
    theFool  
       2015-06-23 23:20:11 +08:00
    用这个插件的朋友卡不卡?
    本来vim是瞬间启动的,现在要1-2s.
    写代码的过程中也会卡,有时候代码都敲完了补全还没出来。
    是本来就这样还是没配置好?
    yangyanggnu
        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/'
    IndexXuan
        14
    IndexXuan  
       2015-06-24 09:26:32 +08:00
    感觉能使用必须
    1. 安装后完整编译。
    2. 按文档配置好extra_conf_py.(路径看好)
    这插件安装后还要编译很久。刚开始也是补全的很少,基本只抽取页面里的(已经很强大了)。后把那个什么extra_py文件写入了配置(看文档)就好了。vim启动和使用速度依然给力,写别的语言也有他的功能,甚至配合js引擎也有很好的提示和补全。不过和utilsnips什么的有些冲突,配合supertab好了一些。ps 虚拟机开发环境
    xixi10111011
        15
    xixi10111011  
    OP
       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
        16
    yangyanggnu  
       2015-06-25 09:42:30 +08:00
    @xixi10111011

    添加至 .vimrc 中,确认 vim 是否提示加载 .ycm_extra_conf.py 文件:
    let g:ycm_confirm_extra_cOnf=1
    dcoder
        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 怎么跟它配合
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2578 人在线   最高记录 6679    
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms
    UTC 11:39 PVG 19:39 LAX 03:39 JFK 06:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86