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

YouCompleteME 感受

  •  
  •   maobush 2017-12-22 13:00:52 +08:00 10336 次点击
    这是一个创建于 2855 天前的主题,其中的信息可能已经有所发展或是发生改变。
    花了几天时间配置了 youcompleteme,感觉并没有多好用啊,小伙伴们怎么看呢
    47 条回复    2017-12-25 13:04:16 +08:00
    hujianxin
        1
    hujianxin  
       2017-12-22 13:05:08 +08:00   2
    本科的时候搞过,现在不会再去浪费宝贵的时间去折腾这些了
    JamesMackerel
        2
    JamesMackerel  
       2017-12-22 13:06:35 +08:00
    换 IDE 吧,再不济换个 VSCode 也好。
    xwhxbg
        3
    xwhxbg  
       2017-12-22 13:07:44 +08:00   3
    现在有个 deoplete 比 ycm 好用一点点,不过 vim 就是折腾,你折腾半年都不一定有 vscode 开箱好用。。。。
    But...好用难买爷开心,生命在于折腾~~
    zhuangzhuang1988
        5
    zhuangzhuang1988  
       2017-12-22 13:25:48 +08:00
    瞎折腾。
    maobush
        6
    maobush  
    OP
       2017-12-22 13:40:38 +08:00 via Android
    @JamesMackerel 说的是,工程还是需要 IDE
    regiondavid
        7
    regiondavid  
       2017-12-22 14:02:44 +08:00
    费了好大的劲才安上,但是时而好用时而没启动
    glues
        8
    glues  
       2017-12-22 14:04:03 +08:00
    YouCompleteME 很好用啊,是你配置不对吧。
    PS:这玩意还需要花几天时间配置?,半小时搞定的事
    maobush
        9
    maobush  
    OP
       2017-12-22 14:05:46 +08:00 via Android
    @glues 我机器的字体有问题
    maobush
        10
    maobush  
    OP
       2017-12-22 14:07:25 +08:00 via Android
    @regiondavid 里面还有不少东西需要了解,总之,慢慢用吧,时间和项目要紧。
    yang2yang
        11
    yang2yang  
       2017-12-22 14:22:09 +08:00
    折腾过,最后发现还是 ide 好用。。
    realwangyibo
        12
    realwangyibo  
       2017-12-22 14:28:37 +08:00   1
    以后的趋势是 Language Server Protocol 了,目前的问题是社区的质量还不行
    lzhCoooder
        13
    lzhCoooder  
       2017-12-22 14:29:27 +08:00
    我也感觉这个插件性价比太低了...搞了半天还专门装了 clang,除了 c++补全确实很犀利外,C 根本不需要太复杂的补全,用 jedi 补 python 卡的我怀疑人生,比 neocomplete 还要卡,首次加载 numpy 目测至少需要 10s...简直卡的不想写代码。可能只适合 c++用户吧
    maobush
        14
    maobush  
    OP
       2017-12-22 14:58:21 +08:00 via Android
    @lzhCoooder 在我机器上 python 补全比较流畅,C++补全还有些小问题,对 include 标准库头文件补全不起作用。
    maobush
        15
    maobush  
    OP
       2017-12-22 15:01:16 +08:00 via Android
    @realwangyibo 有道理,况且大名鼎鼎的西红柿在 VS 下有时候也有问题,踩过它几个坑,刚开始还以为是代码本身有错误,到后来才发现是西红柿的记忆缓存造成的。一百点伤害
    lzhCoooder
        16
    lzhCoooder  
       2017-12-22 15:02:23 +08:00
    @maobush 我 c++非常好...python 异常卡,能问一下你搭配的是啥 python 补全插件吗
    maobush
        17
    maobush  
    OP
       2017-12-22 15:06:06 +08:00 via Android
    @lzhCoooder 我没搭配其他额外关于 python 的插件,你 ycm_extra_conf 怎么配置的,可以交流下吗
    lzhCoooder
        18
    lzhCoooder  
       2017-12-22 15:12:19 +08:00
    @maobush 直接用的这个~/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py
    keysona
        19
    keysona  
       2017-12-22 15:12:39 +08:00
    大学折腾过 sublime,vim,vscode,atom

    饶了一圈,现在仅仅抱着 jetbrains 的 ide....
    AngelCriss
        20
    AngelCriss  
       2017-12-22 15:14:06 +08:00 via Android
    好用,就是慢,特别是搞 TMP 的时候甚至只能按电源强制关机。。
    maobush
        21
    maobush  
    OP
       2017-12-22 15:17:56 +08:00 via Android
    @lzhCoooder 我也是用的这个,但是标准库的头文件就是无法提示。你是在 linux 平台吗
    ivechan
        22
    ivechan  
       2017-12-22 15:19:09 +08:00
    youcompleteme 挺垃圾的。
    我现在用 ncm + language server neovim + cquery + pyls, 体验不错。
    另外,用 vim 只是用键盘就能随心随遇地操作屏幕上的所有东西, 配合 tmux 实在离不开了。

    要说现在有很多优秀的编辑器, 我有时候也用 vscode,因为 vscode 的 vim 功能做的还不错。
    ivechan
        23
    ivechan  
       2017-12-22 15:20:24 +08:00
    @lzhCoooder pycharm 首次加载也需要很长时间,不过 pycharm 会把 index 数据存储起来,下次用就好很多。
    lzhCoooder
        24
    lzhCoooder  
       2017-12-22 15:24:25 +08:00
    @maobush 你是不是安装的适合有些选项没打开...我平台是 mac 按照简书上有一篇 “一步步教你安装史上最难插件 youcompleteme ”来安装的的
    ivechan
        25
    ivechan  
       2017-12-22 15:25:56 +08:00
    @maobush 头文件提示可以加一个 neoinclude
    lzhCoooder
        26
    lzhCoooder  
       2017-12-22 15:28:13 +08:00
    @ivechan ycm 也会缓存吧,我特地在 pycharm 上试过感觉第一次用 numpy 也就加载大概 1s 吧,而且异步的不会卡的你根本就动不了。我感觉以前用 neocomplete 的时候也就卡 5s 吧,还有首次加载之后 ycm 提示还是有点慢 ncm 却很丝滑...
    maobush
        27
    maobush  
    OP
       2017-12-22 15:31:35 +08:00 via Android
    @ivechan 谢谢,有空我试一下
    ivechan
        28
    ivechan  
       2017-12-22 15:33:03 +08:00
    @lzhCoooder 所以说 ycm 已经过时了,vim8 和 neovim 都支持异步, 是时候改变。
    或者换其他插件了。
    glues
        29
    glues  
       2017-12-22 15:41:17 +08:00
    @ivechan YCM 早就是异步了,我用了这么多年,从没遇到你们说的卡顿问题,而且安装配置也没上面说的那么难。
    NCM 我也试过,YCM 的补全机制甩 NCM 几条街是没啥问题的
    maobush
        30
    maobush  
    OP
       2017-12-22 15:58:26 +08:00 via Android
    @glues 大神厉害,膜拜一下。
    MaxTan
        31
    MaxTan  
       2017-12-22 15:59:05 +08:00
    折腾过,还真没 vscode+vim 插件强
    yylucifer
        32
    yylucifer  
       2017-12-22 16:01:03 +08:00
    放弃吧,折腾了两年最后发现还是 pycharm 好用。
    maxxxxx
        33
    maxxxxx  
       2017-12-22 16:04:26 +08:00 via Android
    @ivechan 留个 repo 看看呗
    HaoyangWei
        34
    HaoyangWei  
       2017-12-22 18:28:57 +08:00
    然而产出的代码质量跟你用 vim 还是 IDE
    没有一点关系
    BingoXuan
        35
    BingoXuan  
       2017-12-22 18:58:21 +08:00 via Android
    昨晚花了几个小时配置 ycm。说实话,用处真不大。只是作为应急。Python 补全慢到怀疑人生,c 系还好。总体还是会拖慢效率。但是有时候在终端编辑文件时候,作用就出来了。

    vscode 加插件还是很不错,所以 vscode 吧。vi/vim 最终还是作为基础编辑器,不要想太多能代替一切
    raawaa
        36
    raawaa  
       2017-12-22 19:38:19 +08:00
    请入坑 Spacemacs。
    diggerdu
        37
    diggerdu  
       2017-12-22 19:50:42 +08:00 via iPhone
    @xwhxbg 有的时候终端里面没有办法
    livc
        38
    livc  
       2017-12-22 20:15:20 +08:00 via iPad
    quinoa42
        39
    quinoa42  
       2017-12-22 20:19:39 +08:00
    港真,deoplete 简单好用,为什么一定得用 YCM 呢
    ```
    Plug 'Shougo/deoplete.nvim', { 'do' : ':UpdateRemotePlugins' }
    Plug 'Shougo/echodoc.vim'
    if executable('clang')
    Plug 'tweekmonster/deoplete-clang2', { 'for' : ['c', 'cpp'] }
    endif
    Plug 'OmniSharp/omnisharp-vim', { 'do': 'cd server && xbuild', 'for' : 'cs' }
    \ | Plug 'tpope/vim-dispatch', { 'for' : 'cs' }
    \ | Plug 'dimixar/deoplete-omnisharp', { 'for' : 'cs' }
    Plug 'artur-shaik/vim-javacomplete2', { 'for' : 'java' }
    Plug 'zchee/deoplete-jedi', { 'for' : 'python' }
    Plug 'fishbullet/deoplete-ruby', { 'for' : 'ruby' }
    Plug 'Shougo/neco-vim', { 'for' : 'vim' }
    ```

    ```
    if has("nvim")
    " enable deoplete
    let g:deoplete#enable_at_startup=1
    " <TAB>: completion.
    " inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
    " even show when there is only one result
    set completeopt=longest,menuone
    " <C-h>, <BS>: close popup and delete backword char.
    inoremap <expr><C-h> deoplete#smart_close_popup()."\<C-h>"
    inoremap <expr><BS> deoplete#smart_close_popup()."\<C-h>"
    if !exists('g:deoplete#omni#input_patterns')
    let g:deoplete#omni#input_patterns = {}
    endif
    let g:deoplete#ignore_sources = {}
    let g:deoplete#ignore_sources._ = ['buffer', 'javacomplete2']
    let g:deoplete#omni#functiOns= {}
    let g:deoplete#omni#input_patterns.tex = g:vimtex#re#deoplete
    let g:deoplete#omni#input_patterns.java = [
    \'[^. \t0-9]\.\w*',
    \'[^. \t0-9]\->\w*',
    \'[^. \t0-9]\::\w*',
    \]
    let g:deoplete#omni#input_patterns.jsp = ['[^. \t0-9]\.\w*']
    endif

    if has("patch-7.4.314")
    set shortmess+=c
    endif

    let g:echodoc_enable_at_startup=1

    ```
    quinoa42
        40
    quinoa42  
       2017-12-22 20:23:58 +08:00
    如果用了 eclim,可以用下面这段 script:
    ```
    function! Java_autocomplete()
    if eclim#project#util#GetCurrentProjectName() == ''
    let b:deoplete_omni_functiOns= [
    \ 'javacomplete#Complete'
    \]
    else
    let b:deoplete_omni_functiOns= [
    \ 'eclim#java#complete#CodeComplete'
    \]
    endif
    endfunction

    augroup Java_deoplete
    au!
    autocmd FileType java call Java_autocomplete()
    augroup END
    ```
    kimoCHG
        41
    kimoCHG  
       2017-12-22 20:34:35 +08:00
    https://github.com/kimochg/dotfiles

    分享下自己折腾过的 dotfiles,总结下来,nvim 没有比较好用的 独立客户端,而且删掉了 guifont,字体只能跟 iterm 一样,spacemacs 折腾下来 auto-company 不支持 fuzzy complete,放弃了。转了一圈还是用了 macvim 做为生产工具。
    ivechan
        42
    ivechan  
       2017-12-22 21:38:47 +08:00
    ivechan
        43
    ivechan  
       2017-12-22 21:41:25 +08:00
    @glues YCM 也不是我说怎样就会怎样的, 有人不会遇到卡顿, 但是也有人遇到卡顿.
    我也不会因为 YCM 太好而不用他.
    tracyone
        44
    tracyone  
       2017-12-23 07:45:13 +08:00 via iPhone
    ycm 的问题:
    1,难安装。特别某些环境下,比如 win,比如 x86 的 linux。
    2,特么一直更新,现在最新版本都下载 clang5

    但是一次搞定之后以后都非常爽了。

    贴下我的配置: https://github.com/tracyone/t-vim
    lzxin1
        45
    lzxin1  
       2017-12-23 12:55:26 +08:00
    YCM:

    1. 函数跳转
    2. 代码补全提示
    sen506
        46
    sen506  
       2017-12-23 23:59:33 +08:00 via iPhone
    放弃吧,用 jetbrain 的 ide,修改自动同步到 server 上,,然后上去直接编译就好了。。
    nG29DOMuRYTWfcSr
        47
    nG29DOMuRYTWfcSr  
       2017-12-25 13:04:16 +08:00 via Android
    想要 IDE,又想玩 Vim ?你可以试试
    https://github.com/SpaceVim/SpaceVim
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5645 人在线   最高记录 6679       Select Language
    创意工作者们的社
    World is powered by solitude
    VERSION: 3.9.8.5 79ms UTC 03:32 PVG 11:32 LAX 20:32 JFK 23:32
    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