V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xixi10111011
V2EX  ›  Vim

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

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

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

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

    :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   ·   实用小工具   ·   901 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:44 · PVG 05:44 · LAX 13:44 · JFK 16:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.