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

新人的 Vim 之路在代码补全上夭折了...

  •  
  •   marcosteam · 8 天前 · 8159 次点击

    我接触 linux 的时间也不长,大概就几个星期,目前主力 IDE 就是 JB 全家桶+Vim+Vscode。

    但是饱受知乎浸淫,接触到一个理念:Vim 永远是世界上最好的 IDE! 于是我就开始学习使用 Vim。

    Vimtutor 也刷了好几遍了,快捷键大概也知道怎么用了,那么,要想打造 IDE,总得装插件吧?

    好吧,先把 Vundle 装上去,整个过程还是十分轻松愉快的。

    不愉快的体验就发生在代码补全插件那里了。

    之前没有查过资料,直接在 Github 上面搜代码补全插件,一看,YCM,哇,一万多个 Star,装!看了一下,没问题,脚本解决的事,对照文档开始装,结果...C 语言部分报错,装不上。只能采用下面的传统安装方法,结果在编译过程报错,提示我找不到 libcpp.so ,可是我都已经按照你的要求把 llvm 和 C 的二进制下了,还放到对应的文件夹里面啊?为什么报错?怒删!

    好吧,谷歌一搜,原来 YCM 是全世界最难安装的 Vim 插件之一,好吧,我去 V 站看看,哦,有个更轻量的 deoplete,看文档还蛮简单的啊,装!

    先装 neovim,再用 Vundle 装插件,然后配置补全源,C++和 Py 用的默认的 deoplete-clang 还有 deoplete-jedi,按文档配置以后就变成了这个样子:

    看起来应该是没什么问题的吧...

    可是,当我满怀期待的新建一个 CPP,准备写老师的作业的时候...

    补全框呢?诶?为什么看不到?空的?而且我不是开了括号自动补全吗?为什么没用?

    代码求轻喷,零基础学 Python 才几个月...

    现在的我已经完全失去了折腾的热情,因为我已经连续折腾这个了三天,连 stackoverflow、v2ex、知乎、google 都搜了一遍...准备老老实实用 vscode,安逸。

    哪位大手子能带带我装一下插件吗?我不想努力了.jpg

    或者,有没有比较新一点的代码补全插件的安装教程?

    第 1 条附言  ·  5 天前

    OK,休息了一下以后,我换成了nvim++vim-plug+LSP,按照官方文档 https://github.com/autozimu/LanguageClient-neovim/blob/next/INSTALL.md 的介绍,加入参数后嘛,就变成了这样...

    2018-05-19 22-25-10 的屏幕截图.png

    没错...LSP的安装卡死了...半天不动,按理来说应该会开启sh文件配置的,但是没有...

    155 回复  |  直到 2018-05-23 23:57:01 +08:00
    1  2  
        101
    regiondavid   7 天前
    YCM 我整整彻底重新装了 5/6 次才成功
        102
    WildCat   7 天前   ♥ 3
    恕我直言,说什么 vim 写代码的其实都是在装逼 + 1
        103
    SkyKoo   7 天前
    为何必须代码补全,c+p c+n 够用了
        104
    ranwu   7 天前
    在 arch linux 上的话,装 YCM 只需一条命令搞定^^,不过发现还是没什么卵用
        105
    sensui7   7 天前
    sublime text 的功能, vim 能实现 9 成, vs code 能实现 9 成
    vim 的功能, st 实现 5 成, code 5 成
    code 的功能, st 实现 3 成, vim 实现 7 成


    综合: 我选择 vs code
        106
    livc   7 天前
    @nekoyaki #94 跟这种傻逼有啥好理论的
        107
    omph   7 天前
    @aaronzjw 大概了解了下,真的没兴趣,浪费生命
        108
    marcosteam   7 天前 via Android
    @ranwu 越说越想用 Arch 了…
        109
    zhouzm   7 天前
    应该把 vim 看作是一种技能(包括寻找配置自己需要的插件),想几天或几个星期的短时间就掌握是不太容易的,心理预期至少要放到几个月。坚持挺过这么长的痛苦练习期后,绝对会成为伴你一生的能力。
        110
    shihira   7 天前
    今年我已经装了 3 次 YCM 了,新电脑的 Linux 上一次 Windows 上一次,公司新电脑上一次。
    踩的坑多数是墙的锅,比如说 git clone 因为 clone 着 clone 着没速度了,连接超时云云。中断之后子模块没 clone 完整,git 又炸出 bug。又或者说 Build 的时候下载 Clang,下到一半又没速度了。只能说中国人装起来特蛋疼。
    从这个项目很早期开始就跟着用和关注了。很中肯地说,早些年比起只能用 clang_complete (慢到出奇)和 ctags 补全(不语义),YCM 简直是福音。速度快、有语义、有 fuzzy、有跳转到定义等等。但老实说它事实上并不算好用,作者的态度也稍微有点脾气(据说是个 Google 员工)。实在有点想换了。
        111
    shihira   7 天前
    你要是还想折腾 YCM 你可以加一下我 telegram,v 站 profile 里有。
        112
    mashpolo   7 天前
    写代码的话,还是建议楼主用专门的编辑器, vim 的话,服务器上远程的话应该比较常用到
        113
    BingoXuan   7 天前
    因为踩过坑,所以从来不建议将 vim 当作 ide 使用

    不然 ide 有什么存在意义??

    好好下载一个 ide 吧,折腾诚可贵,生命价更高。有这时间好好静下心来学习吧
        114
    arakashic   7 天前
    你自己用的习惯的编辑器 /IDE 才是世界上最好的编辑器 /IDE ! LZ 如果你才是用了几个星期,基本上还停留在 vimtutor 教你的那些操作的话,换门还来得及没必要逼自己用 vim。
        115
    zengguibo   7 天前
    写代码还是要上 ide 的,漂亮水灵的姑娘你不爱,偏爱那臭不可闻的男人
        116
    jimages   7 天前 via iPhone
    我怎么觉得 ycm 特别好装啊 mac 也装了
        117
    raawaa   7 天前
    spacemacs 可以尝试一下。
        118
    raawaa   7 天前
    另外电脑挺不错的嘛,截图里的字体渲染的如此高清。屏幕分辨率多少啊。
        119
    jimages   7 天前 via iPhone
    @jimages 就几行命令就装好了
        120
    marcosteam   7 天前 via Android
    @raawaa 默认 1080P 呗,新版 ubuntu 自带思源黑体,皮肤用的是 flat remix,用 tweak 改了一下文字的大小
        121
    Rorysky   7 天前
    大公司有专门 搞 ide 优化的
        122
    raawaa   7 天前


    试着截了一下自己的。发现也还行。看来只是因为你的字体大,
        123
    eclipselu   7 天前
    @qf19910623 233 所以还是用 vscode 吧。
        124
    uucloud   7 天前
    用 python 编译 ycm 其实很容易。
        125
    marcosteam   7 天前 via Android
    @uucloud 就是因为 python 脚本装不上去所以我只能编译啊
        126
    cz5424   7 天前 via Android
    github 上 k-vim 了解一下,初学者偷懒之路
        127
    20015jjw   7 天前
    lz 不要气馁 慢慢来 基本调教到你想要的样子要 2 年
        128
    brucewar   6 天前
    可以在 vscode 里安装一个 vim 插件啊
        129
    guoli100   6 天前
    楼主不要气馁,慢慢熟悉 VIM 就好了,熟能生巧是早晚的事。YCM 也不是像网上说的多难装,只是安装文档写的比较细而已,安装其实只是一两个命令,试几次就明白了。
        130
    mervin3e   6 天前
    楼主如果使用 deoplete 的话,可以试试 https://github.com/Rip-Rip/clang_complete
        131
    HackerOO7   6 天前 via Android
    昨天晚上刚配了 YCM,按照文档来,一切挺顺利的啊
        132
    clavichord93   6 天前 via iPhone
    ycm 确实好难配啊,特别是我这种用 anaconda 的… python 补全从来没有 work 过… cpp 补全也只 work 过一次…
        133
    SpaceVim   6 天前
    给大家推荐一个 vim 中文社区吧,虽然才开始,但是已经算是走上正轨了

    https://github.com/vim-china
        134
    SpaceVim   6 天前
    @mervin3e deoplete 作者写了一个 clang 的 source 叫做 deoplete-clangx,我建议你可以试试,clang_complete 毕竟还是使用的 omni 方法,相对比较慢,而且不是异步的,会造成卡顿。

    如果只是用来写 python 完全没有必要安装 YCM,ycm 的后台其实也是 jedi, 可以使用 deoplete + deoplete-jedi 这两个插件替代。安装相比 ycm 要简单很多。
        135
    preyta   6 天前
    自带的 ctrl+p 足够了
        136
    SpaceVim   6 天前
    @marcosteam 仔细读完你的帖子,你的问题是安装 ycm 失败,这点我没法帮你,因为我并不用 ycm, 也不建议用 ycm。 关于 neovim 和 deoplete 的安装大致过程如下:

    1. 安装 neovim, 编译也好,通过包管理器安装也好,都非常简单,可以参考 neovim 的 wiki

    https://github.com/neovim/neovim/wiki/Installing-Neovim

    2. 安装好了 neovim, 并未结束,neovim 添加 python 和 python 及 lua 的支持,你需要安装对应的 client, 我是通过如下脚本安装的:

    pip2 install --user neovim

    pip3 install --user neovim

    3. 安装 deoplete 以及 deoplete-jedi

    你可以采用 vim-plug 或者 vundle 都一样, 但是 neovim 启动安装完插件以后,你需要执行一次 :UpdateRemotePlugins
        137
    Mirana   6 天前
    不用代码补全
        138
    whnzy   6 天前
    deoplete 建议你上 neovim
        139
    hscui   6 天前
    新人就老实用 Jetbrain,VScode 这类的集成 IDE,真的不建议去摆弄 Vim 之类的,毕竟新人最重要的任务是学语言,使用语言,而不是配置编辑器。
        140
    spark   6 天前
    @SpaceVim SpaceVim 插件安装不上怎么破?

    分别在 init.tml 和 init.vim 都加了配置,理论上不是应该打开 vim 然后就自动读取配置安装么?然并卵。
        141
    maokabc   6 天前 via Android
    很长一段时间都是用 acp,根据已有的词进行补全,相当实用。不然就是无配置直接用,无法理解非要把 vim 配置成 ide 的
        142
    marcosteam   6 天前 via Android
    @SpaceVim 好的,已换 neovim,谢谢!
        143
    congeec   6 天前 via iPhone
    @WildCat 都字过分了啊
        144
    lzjqsdd   6 天前 via Android
    一开始不要配置那么多插件,一个个来,不然快捷键多了很难熟悉起来。一个个攻破
        145
    lzjamao   6 天前
    如果你有志在 linux 下开发,坚持去解决错误,你会学到一些 linux 知识的。

    我最初是从[这里]( https://github.com/yangyangwithgnu/use_vim_as_ide)学装 vim 的,我第一次装 YCM 折腾了 3 天,后来将安装命令([这里]( https://github.com/lizijie/use_vim_as_ide/blob/master/install_ycm.sh))都记录下
        146
    param   6 天前 via Android
    ycm 在 Arch Linux CN 的源就有,我就直接装了。所有的语言支持都编译进去了。
        147
    param   6 天前 via Android
    @thedrwu ZZ 好难按啊。。:x 还不好吗?
        148
    thedrwu   6 天前
    @param 德语键盘的 ZZ 非常好按
    VIM 当时有许多德语区的开发者, 按键上也不是完全按照美式键盘优化的, 比如:

    - 为什么录宏是 q 在播放宏是 @ , 因为它们是同一个键。

    - 为什么 X 的剪贴板是 + 、 * 和 ~ , 因为它们是同一个键。

    - 为什么行首是 ^ , 因为它在 1 键的左边,键盘最左的键之一,而且不需要按 shift。
        149
    param   6 天前 via Android
    @thedrwu 以原教旨主义的立场,应该按照最初设计的键位来设置快捷键
        150
    thedrwu   6 天前
    @param 我不赞同按位置来设置功能。不仅是不同语言有不同的键盘, 还有人喜欢用 dvorak 布局呢。
    举个例子,我用郑码十多年, 其中也有键盘布局的原因,五笔在别的键盘上不如郑码好用。虽然打字久了之后只是条件反射手指下按顺序,但灵活性上, 郑码按照 A-Z 字母顺序对应笔划,比五笔分键区灵活性大增。
    (题外话, 至于为什么非要用字型输入,一是因为当年拼音傻;二是因为字型输入灵活 ,不仅可以做到完全盲打,不常用的字也能立刻打出。 即使当今拼音智能了, 仍然用字型单字输入, 可以保护隐私不被输入法厂商得到,还可以不忘怎样写字)
        151
    marcong95   5 天前
    @lunafreya vim 的最基本生存方式:啥都别写了:wq 退出算了(滑稽)

    vim xxx.c
    !@*)(&%*%_)!*(@#_*$!*
    :wq
    code xxx.c
        152
    ahjsrhj   5 天前
    建议使用 vscode + vim 插件的方式使用
        153
    jouyouyun   5 天前
    @marcosteam ycm 安装时需要编译的,所以需要先安装好编译依赖,然后才能编译成功。
    我的 vim 配置( https://github.com/jouyouyun/vim.d) 你可以看下
        154
    marcosteam   5 天前 via Android
    @whnzy 上了,结果…看补充吧
        155
    ivechan   1 天前
    sudo apt-get install build-essential cmake git
    sudo apt-get install python-dev python3-dev
    cd ~/.vim/bundle/YouCompleteMe # 这里注意你 ycm 目录
    ./install.py --clang-completer
    在纯净的 Ubuntu16.04 ,这种安装方法其实非常简单啦。
    千万不要乱改其他东西,比如,一定要自己配置 libclang 啥的。
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   903 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 20ms · UTC 23:22 · PVG 07:22 · LAX 16:22 · JFK 19:22
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1