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

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

  •  
  •   marcosteam · 153 天前 · 10721 次点击
    这是一个创建于 153 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我接触 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 条附言  ·  150 天前

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

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

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

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


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

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

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


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

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

    如果只是用来写 python 完全没有必要安装 YCM,ycm 的后台其实也是 jedi, 可以使用 deoplete + deoplete-jedi 这两个插件替代。安装相比 ycm 要简单很多。
        135
    preyta   152 天前
    自带的 ctrl+p 足够了
        136
    SpaceVim   152 天前
    @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   152 天前
    不用代码补全
        138
    whnzy   152 天前
    deoplete 建议你上 neovim
        139
    hscui   152 天前
    新人就老实用 Jetbrain,VScode 这类的集成 IDE,真的不建议去摆弄 Vim 之类的,毕竟新人最重要的任务是学语言,使用语言,而不是配置编辑器。
        140
    spark   152 天前
    @SpaceVim SpaceVim 插件安装不上怎么破?

    分别在 init.tml 和 init.vim 都加了配置,理论上不是应该打开 vim 然后就自动读取配置安装么?然并卵。
        141
    maokabc   151 天前 via Android
    很长一段时间都是用 acp,根据已有的词进行补全,相当实用。不然就是无配置直接用,无法理解非要把 vim 配置成 ide 的
        142
    marcosteam   151 天前 via Android
    @SpaceVim 好的,已换 neovim,谢谢!
        143
    congeec   151 天前 via iPhone
    @WildCat 都字过分了啊
        144
    lzjqsdd   151 天前 via Android
    一开始不要配置那么多插件,一个个来,不然快捷键多了很难熟悉起来。一个个攻破
        145
    lzjamao   151 天前
    如果你有志在 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   151 天前 via Android
    ycm 在 Arch Linux CN 的源就有,我就直接装了。所有的语言支持都编译进去了。
        147
    param   151 天前 via Android
    @thedrwu ZZ 好难按啊。。:x 还不好吗?
        148
    thedrwu   151 天前
    @param 德语键盘的 ZZ 非常好按
    VIM 当时有许多德语区的开发者, 按键上也不是完全按照美式键盘优化的, 比如:

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

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

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

    vim xxx.c
    !@*)(&%*%_)!*(@#_*$!*
    :wq
    code xxx.c
        152
    ahjsrhj   151 天前
    建议使用 vscode + vim 插件的方式使用
        153
    jouyouyun   151 天前
    @marcosteam ycm 安装时需要编译的,所以需要先安装好编译依赖,然后才能编译成功。
    我的 vim 配置( https://github.com/jouyouyun/vim.d) 你可以看下
        154
    marcosteam   150 天前 via Android
    @whnzy 上了,结果…看补充吧
        155
    ivechan   146 天前
    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 啥的。
        156
    SpaceVim   145 天前 via Android
    @spark 更新下 SpaceVim,最新版官网有教程
        157
    apolodu   111 天前
    所以现在楼主的 vim 能够实现自动补全了么?

    我也断断续续地折腾了一个多月了. vim 不难, 但是想用 vim 来开发必须装不少插件, 问题在于这些插件的文档大多 tm 写的像 sh*t 一样, 配置的部分三言两语略过, 要么直接丢一个文件出来, 让人 xjb 猜, 看得一头雾水, 很恶心.
        158
    jhsunnyshine   106 天前 via Android
    Mac 下的 vscode 也贼难受,比如你输入一个 pr 补全,它会补全 print,而在 win 下会补全 print(),唉,醉醉的
        159
    lancelock   68 天前
    @tombear001 朋友,你这个是什么字体啊,挺漂亮
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2289 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 25ms · UTC 12:37 · PVG 20:37 · LAX 05:37 · JFK 08:37
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1