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

YouCompleteME 感受

  •  
  •   maobush · 2017-12-22 13:00:52 +08:00 · 9938 次点击
    这是一个创建于 2530 天前的主题,其中的信息可能已经有所发展或是发生改变。
    花了几天时间配置了 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   ·   实用小工具   ·   3604 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:01 · PVG 13:01 · LAX 21:01 · JFK 00:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.