marcosteam
V2EX  ›  Vim

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

  •  
  •   marcosteam · May 17, 2018 · 32788 views
    This topic created in 3093 days ago, the information mentioned may be changed or developed.

    我接触 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

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

    Supplement 1  ·  May 19, 2018

    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 replies  •  2018-08-09 23:48:30 +08:00
    1  2  
    ❮ ❯
    18076362432
    18076362432
    May 17, 2018 via iPhone
    1
    哈哈哈哈
    lunafreya
    lunafreya
    May 17, 2018 via iPhone
    2
    vim 我是从最基本的生存方式 :w :q 开使用。
    不需要一开始就急功近利地搞成完全体吧
    image72
    image72
    May 17, 2018
    3
    首先你要解决一个问题:how to exit vim?
    [![1_AD1e170YTJaiUBypv1H9Ow.jpeg]( https://i.loli.net/2018/05/17/5afc7452b09fb.jpeg)]( https://i.loli.net/2018/05/17/5afc7452b09fb.jpeg)
    marcosteam
    marcosteam
    OP
    May 17, 2018 via Android
    4
    @image72 :q,:wq 这个我还是会的,都说了刷了好几遍 vimtutor 了(¬_¬)
    Tetsuchou
    Tetsuchou
    May 17, 2018❤️7
    5
    人生苦短我用 nano
    eclipselu
    eclipselu
    May 17, 2018
    6
    刚接触 vim 的话也没必要一次搞得大而全,慢慢来,别浪费时间在配置上太多了,毕竟你是拿它来帮助你完成工作的。我想说 vscode 也很不错啊,我现在用得爽歪歪,为啥要转呢?
    Reficul
    Reficul
    May 17, 2018 via Android❤️3
    7
    vim 什么时候被称作 IDE 了🤔
    staticor
    staticor
    May 17, 2018
    8
    本来想睡了, 大半夜的.


    一看到这个帖子手贱点进来了, 笑得不困了



    -- 轻调戏
    jmc891205
    jmc891205
    May 17, 2018❤️3
    9
    vim 就是个好用的编辑器而已
    何必非要妄想把它改造成 ide 呢
    inflationaaron
    inflationaaron
    May 17, 2018 via iPad❤️1
    10
    你需要投入 Spacemacs 的怀抱
    thedrwu
    thedrwu
    May 17, 2018
    11
    @marcosteam 真正的老排 vim user 不用 :wq 而是 ZZ。
    quinoa42
    quinoa42
    May 17, 2018
    12
    你装的不是 neovim+deoplete 吗,为什么看你的配置里还有专门给 vim 用的一些实现 neovim 功能的插件和 neoinclude
    推荐以下步骤:
    1 )改用 vim-plug 而不是 vundle (更轻量,配置方便,多进程更新) https://github.com/junegunn/vim-plug
    2 ) https://github.com/zchee/deoplete-jedi/wiki/Setting-up-Python-for-Neovim
    3 )装 https://github.com/Shougo/deoplete.nvim (`Plug 'Shougo/deoplete.nvim', { 'do' : ':UpdateRemotePlugins' }`)
    4 ) https://github.com/zchee/deoplete-jedi
    不是很明白的话可以参考一下我的 neovim 配置 https://github.com/quinoa42/dotfiles/blob/1fe58ed1452a7d50c60df6639400b54f6c34992b/applications/nvim/init.vim
    NoDocCat
    NoDocCat
    May 17, 2018❤️1
    13
    我就这么说吧,说 VIM 是最好的编辑器指的是 VIM 的操作方式,而不是 VIM 本身。
    听我一句劝,别把有限的时间浪费在这些玩意上,IDE 装个 VIM 插件照样用的爽。
    xiaket
    xiaket
    May 17, 2018❤️1
    14
    @NoDocCat 你犯了修正主义错误! txtx
    LCD
    LCD
    May 17, 2018 via Android
    15
    就像开电动车就是图方便,不要改装上倒档,变速箱等华而不实的装备。如果有这样需求,直接开小车好了,手动狗头
    aice114
    aice114
    May 17, 2018 via Android
    16
    我以前也这样,用 vim 就像用完全体,后来发现还是 ide+vim 好用
    wlwood
    wlwood
    May 17, 2018 via Android
    17
    哈哈哈哈,怎么感觉突然看到了当年的自己🙃🙃🙃,老哥,你还可以折腾下 emacs,或许这才是你的最爱哟!
    认真脸,要能写的一手好代码,什么编辑器不都还是一个编辑器么?


    肯定多年后回来看,写了一首好代码,就想着怎么做成一个好产品,做成了好产品,就想着怎么提高用户量知名度!当年竟然在用什么编辑器浪费了这么多时间😤😤😤(`⌒´メ)
    marcosteam
    marcosteam
    OP
    May 17, 2018 via Android
    18
    @wlwood 首先我得去买个脚踏板😂
    plko345
    plko345
    May 17, 2018
    19
    从来没刷过 vimtutor,会最基本的功能,懂每个快捷键的意思,用久了就习惯了,刚开始特意学那么多对于使用一个工具而言似乎不太合适.vim 要学的还是相当多的,达到满足自己的要求即可
    noqwerty
    noqwerty
    May 17, 2018 via iPhone
    20
    建议正常 ide 加上一套好用的配置,不要折磨自己

    https://github.com/amix/vimrc
    waruqi
    waruqi
    May 17, 2018 via Android
    21
    不喜欢自动补全,干扰我打字,直接用用 supertab 补全下就行了,neovim + supertab + tagbar + leaderf 已足够。https://github.com/waruqi/vim
    BBCCBB
    BBCCBB
    May 17, 2018
    22
    还要装 jedi, pip install jedi
    marcosteam
    marcosteam
    OP
    May 17, 2018 via Android
    23
    @BBCCBB 装了…
    wd
    wd
    May 17, 2018 via iPhone
    24
    为什么失败了还好意思发这么长一篇出来…
    omph
    omph
    May 17, 2018
    25
    有打包好的 vim-ide,不用折腾了
    https://github.com/SpaceVim/SpaceVim
    halk
    halk
    May 17, 2018 via Android
    26
    原来配置好,后来又卸载了,毕竟没有纯终端远程开发的需求,另一方面是自动补全有时会有卡顿
    还是 jb+vs+vim 挺好用的,根据场景选择不同工具就够了
    zeny620
    zeny620
    May 17, 2018 via Android
    27
    caixiexin
    caixiexin
    May 17, 2018 via Android
    28
    大牛用 vim 写代码,从来不用补全的:doge
    aaronzjw
    aaronzjw
    May 17, 2018
    29
    space-vim 了解一下,我以前觉得 vim 麻烦就用这个。不过后来还是手动编译 ycm 了, 该踩的坑还是得踩,不然遇到了还是心虚
    ynyounuo
    ynyounuo
    May 17, 2018 via iPhone❤️1
    30
    ……这都需要教程吗?官方 doc 读个大概自己都能 debug 了,而且 YCM 官方还提供了一个配置好的 extra conf 可以参考。

    @omph
    SpaceVim 恶意宣传的黑历史了解一下。本站搜索即可,YC 也有。
    gbin
    gbin
    May 17, 2018 via Android
    31
    <C-n>,<C-p>,<C-x><C-o>,<C-x><C-f> 插入模式下看看这些快捷键是否有用。
    JsonLee
    JsonLee
    May 17, 2018 via iPhone
    32
    已经放弃 vim+vundle 了,装的插件多的时候启动很慢,换成了 neovim 了,写 python 还是蛮不错的!
    andyliwrldk
    andyliwrldk
    May 17, 2018
    33
    vscode 不是挺好?
    wr410
    wr410
    May 17, 2018
    34
    搞定 vim 的基本操作就可以了

    经常看到同事翻个日志都要上去拖回来在用文本编辑器打开

    其实 vim 搜索或者 grep 都可以翻倍提高效率,不想说也懒得说,不关我事

    如果要批量操作文件,sed,awk,grep 随便组合都比 vim 方便

    恕我直言,说什么 vim 写代码的其实都是在装逼
    grewer
    grewer
    May 17, 2018
    35
    是 J 家不好用,还是你飘了
    tamlok
    tamlok
    May 17, 2018
    36
    先看看 Practical Vim 这本书。用了六七年,写的 C 或 CPP,一直都没有搞自动补全。
    yongSir
    yongSir
    May 17, 2018❤️1
    37
    其实你只要把任何 ide 都用成 vim 就好了
    这样虽然修正
    但你获得了不止一个 vim


    坚决打倒一切 原止教义主义
    hncqp
    hncqp
    May 17, 2018 via iPhone
    38
    @wr410 用 vim 写 cxx8 年,没有 b,也不用装

    hhkb+vim+emacs 很好用
    yanzixuan
    yanzixuan
    May 17, 2018
    39
    原来我还愿意折腾一下,但是上了年纪,最后选择 pycharm+vim 插件。。
    zzf2017
    zzf2017
    May 17, 2018
    40
    有 ide 我就不打算用 vim 这种编辑器了。各位有什么必须会 vim 的理由吗
    liuxu
    liuxu
    May 17, 2018
    41
    "接触到一个理念:Vim 永远是世界上最好的 IDE! ",不再是了。
    ech0x
    ech0x
    May 17, 2018 via iPhone
    42
    kingzez
    kingzez
    May 17, 2018 via Android
    43
    VSCode 开 vim 插件 也不错
    ilaipi
    ilaipi
    May 17, 2018
    44
    推荐大家用的比较多的配置~

    https://github.com/wklken/k-vim

    一直在用,很顺手
    ruchee
    ruchee
    May 17, 2018
    45
    先不要去折腾 YCM 这么复杂的补全插件,一开始用自带的关键字补全( Ctrl+P ),再加上 snipMate 就行了,把 Vim 基本的按键、功能用熟悉再说

    作为一个同样从大学时代自己折腾过来的人,一开始就想搞得 666,只会打消自己的激情
    satanandroid
    satanandroid
    May 17, 2018
    46
    知乎,分享你刚编的牛逼。
    vim 是编辑器,不是 ide.....
    不要为了装逼去用 vim 等你真的要远程去服务器没有的界面的时候,就会用了
    nary
    nary
    May 17, 2018 via iPhone
    47
    早就放弃了,一直用的 sublime
    yzmm
    yzmm
    May 17, 2018
    48
    有那时间还不如换个稳定强大的 ide
    scarletmu
    scarletmu
    May 17, 2018
    49
    我懒...所以还是用 VSC 加 Vim 插件
    liujunsheng
    liujunsheng
    May 17, 2018
    50
    为啥不用现成的 ide 呢?
    goinghugh
    goinghugh
    May 17, 2018
    51
    同样折腾过 vim,emacs,spacemacs,最后还是使用 ide...
    Applenice
    Applenice
    May 17, 2018
    52
    最后你会发现...弄点常用的设置,用几个快捷键,就完事了.....
    linux40
    linux40
    May 17, 2018 via Android
    53
    language server protocol 了解一下?

    话说回来,emacs 的 ycmd 很好装,直接用包管理器就行了,不动脑子,而且 emacs 有 evil,直接在里面用 vim 快捷键。
    ucun
    ucun
    May 17, 2018
    54
    用 VIM 追求的就是简单。

    只配置了 python 代码高亮
    自动缩进

    其他什么都没动。
    Zkiller
    Zkiller
    May 17, 2018
    55
    建议用 IDE+Vim 配置
    yuuko
    yuuko
    May 17, 2018 via Android
    56
    现在还在用(n)vim 的人,是已经被习惯绑架的,比如我
    Lucups
    Lucups
    May 17, 2018
    57
    能花钱解决的问题就不要花时间,尤其是花了时间还不一定能解决。

    所以我选 JetBrains ~
    hicdn
    hicdn
    May 17, 2018
    58
    vim 是编辑器,想打造成 IDE 的,本质是你还是需要一个 IDE,直接用 IDE 就好。可以在 IDE 里装 vim 插件。
    tonghuashuai
    tonghuashuai
    May 17, 2018
    59
    费劲把 vim 打造成 IDE 那干嘛不直接去用 IDE 呢?觉得 lz 的方向就错了,用 vim 就是为了不去用 IDE 的某些特性啊
    lemonlwz
    lemonlwz
    May 17, 2018
    60
    楼主到底是喜欢 vim 的操作方式,还是喜欢 vim 编辑器本身?
    取其精华,为我所用
    congeec
    congeec
    May 17, 2018
    61
    我当初也是这样
    建议 Linux 以及编程搞熟了再来尝试
    你被知乎那家伙坑了
    jswh
    jswh
    May 17, 2018
    62
    用 vim 折腾插件只是为了提高效率,但关键是先学好它的模式输入。这个有了你就会发现,啥?这个编辑器 /IDE 没有 vim 模式?辣鸡!
    defunct9
    defunct9
    May 17, 2018
    63
    用毛插件啊,就用原生的 vi 就好。
    mseasons
    mseasons
    May 17, 2018
    64
    VIM 很强的,熟练运用+装满插件能有 VS 一半的威力。
    alexzhou
    alexzhou
    May 17, 2018❤️1
    65
    学习成本抵得上学一门编程语言了
    sheep3
    sheep3
    May 17, 2018
    66
    @mseasons 哈哈哈哈哈
    BBCCBB
    BBCCBB
    May 17, 2018
    67
    那我就不知道了... 你先用
    https://github.com/roxma/nvim-completion-manager
    这个吧, 虽然不维护了,但是没啥毛病, 很多功能都内置了
    lululau
    lululau
    May 17, 2018
    68
    vim / emacs 原教旨主义者为什么会反对用插件?想了想,可能有两个原因:

    1. 装了各种插件,容易遇到各种问题,自己动手能力不足,搞不定
    2. 他人机器或服务器上没有装插件,或者没有权限装插件?

    哪位原教旨主义者能够不吝赐教一下
    bravecarrot
    bravecarrot
    May 17, 2018 via iPhone
    69
    @wr410 改代码需要啊 deploy 之后 调参数什么的 就要 vim
    c0pper
    c0pper
    May 17, 2018
    70
    除了 evil 其他 vi 插件都不够 vi,evil 也因为一些 emacs 的问题在 vi 上好用的 emacs 上不好用了。楼主你的补全服务的 debug 信息不贴上来有什么好讲的,就像 gocode close && gocode -s --debug 里面的,这根本不是 vim 的问题。老是想打圣战是不行的。
    tombear001
    tombear001
    May 17, 2018
    71
    写前端用的 webstorm,想转向 vscode,也碰到了代码补全的问题。
    ws:![]( )
    vscode:![]( )
    vscode 硬是少了个分号,但偶尔又会自己冒出来,虽然影响不大,但是零零散散的,总有类似的问题,体验不好,老是要折腾,还是 ws 无脑好,懒得折腾了。
    Mrkon
    Mrkon
    May 17, 2018
    72
    大家有遇到过 ctrl + v 然后 shift + a 然后 esc 不能整体改变区块的情况吗?
    求解答!
    swchzq
    swchzq
    May 17, 2018
    73
    Spacemacs 了解一下!
    对 evil(即使用 vim 的操作方式操作 emacs)的支持得很好好
    开箱即用, 提示友好~
    zhze93
    zhze93
    May 17, 2018
    74
    emmmmm, vim 我一般就拿来提代码。
    平常用 pycharm
    nikolai
    nikolai
    May 17, 2018
    75
    vim 只在服务器上用,平时 sublime 或者 VSCode + vim 插件。另外 YCM 太笨重了,已经放弃。
    skt041959
    skt041959
    May 17, 2018 via Android
    76
    我现在还在用 vim 是因为公司的开发都在远程服务器上,ssh+vim 比任何 VNC 的响应速度都快。写 C++的话,YCM 基本上是最好的选择,绕不过去的……
    phoebuss
    phoebuss
    May 17, 2018 via Android
    77
    YCM 是有门槛的…首先你得知道怎么从源码编译 vim, gcc, cmake, llvm …反正我在 ubuntu 12.04 用起来了
    dychenyi
    dychenyi
    May 17, 2018
    78
    @lululau
    你这回答有点搞笑了。任何事物都有定位,如果用于主流定位之外的用途也未尝不可。但如果反过来嗤笑主流定位的用途,那就太搞笑了。
    这跟前些年,用 ubuntu 的想方设法打造成主力娱乐机的用户嘲笑 windows 用户低能。
    这跟河上有座桥,你开个越野车,偏从河里走,就要嘲笑我开小轿车从桥上走的。你尽可以耍你的越野,但别来嘲笑我。
    鄙视链真是哪里都有。
    回到本题,真习惯 vim 的编译模式,你装满插件的 vim 真有我基本 vim+IDE 的 vim 模式来的好用?
    itgoyo
    itgoyo
    May 17, 2018
    79
    本人前几天爬了好多帖子也刚好成功安装 YCM,自己在博客里发了一篇文章,备忘用的,希望对有需要的朋友有所帮助,我的环境是 Mac。

    https://itgoyo.github.io/2018/05/10/Vim%E5%AE%89%E8%A3%85YouCompleteMe/
    caixiexin
    caixiexin
    May 17, 2018 via Android
    80
    @lululau 讲真,什么事情都想用 vim 才是原教旨主义,明明 ide 加 vim 插件可以更出色完成工作。。
    j5shi
    j5shi
    May 17, 2018
    81
    你用 YCM 是写什么代码?
    marcosteam
    marcosteam
    OP
    May 17, 2018 via Android
    82
    @j5shi C++还有 Python,可能会学 js
    Crixs
    Crixs
    May 17, 2018
    83
    折腾使人进步
    poplar40
    poplar40
    May 17, 2018 via Android
    84
    前几天刚刚搞定了补全,不过是用 vim 8.0 加上 YCM。照着 YCM 官方编译教程搞完之后,然后还要记得配置一下,把系统各种 lib 文件夹加上。。
    marcosteam
    marcosteam
    OP
    May 17, 2018 via Android
    85
    @poplar40 我也是 8.0,有什么经验吗?
    f4nyc
    f4nyc
    May 17, 2018 via iPhone
    86
    ycm 装不好……算了…… vim 不适合你
    afx
    afx
    May 17, 2018 via iPhone
    87
    当年就是这么放弃 vim 的,改造成 ide 简直就是在浪费生命,最后还不好用
    ironx
    ironx
    May 17, 2018 via Android
    88
    玩过一阵子就不想用了。不过每次使用 vim 快捷键还是超爽的
    marcosteam
    marcosteam
    OP
    May 17, 2018 via Android
    89
    @ironx 是的,快捷键方便的不要不要的
    ixx
    ixx
    May 17, 2018
    90
    我觉得 vim 的思想不只是局限在一个软件上 而是一套键盘操作的思想 jb 全家桶都有 vim 插件 装一个不就好了吗?
    zhaoweichen
    zhaoweichen
    May 17, 2018
    91
    默认的 Ctrl + N 不支持么?
    twor
    twor
    May 17, 2018
    92
    对于我来说,vim 不是最好用的,但也不难用,ssh + vim 感觉可以 code anywhere by any computer, 很安心但感觉,效率低一点(也许并没有),也就无所谓了
    auin
    auin
    May 17, 2018
    93
    同折腾过,现在是 IDE + vim,chrome+vim, 看来我始终和 vim 无缘
    nekoyaki
    nekoyaki
    May 17, 2018
    94
    @wr410
    我反对原教旨 vim 主意,但我觉得你说“都是装逼”这话说得就有点武断了。我就拿 vim (其实是 gvim )写代码,在工作里用 VIM 写代码能写下去的人,必然说明 vim 方案比 IDE 更能满足需求,没人拿工作进度和绩效开玩笑。
    像我为什么用 vim,不用 IDE ?是我确实对 vim 比较熟,加上平时要写好多种语言,不是一个 IDE 能搞定的,用一个 vim 写,不用切换肌肉记忆。
    另外我也不写像 java 这种需要 IDE 做大量生成的东西。可能换别人就会用 sublime 写,所以我拿 vim 写。
    至于省内存、启动快之类的小优点也有不少。
    chocotan
    chocotan
    May 17, 2018
    95
    idea 装个 vim 的插件
    lzhCoooder
    lzhCoooder
    May 17, 2018
    96
    看一下这篇文章,蛮有用的 https://www.jianshu.com/p/d908ce81017a?nomobile=yes
    winiex
    winiex
    May 17, 2018
    97
    找一千万只猴子,让他们尝试退出 VIM 编辑器,其中必有一只会打出完整的圣经。
    qf19910623
    qf19910623
    May 17, 2018
    98
    @eclipselu 然而补全是最基本的需求吧,没这个完全没法干活了
    luoer
    luoer
    May 17, 2018
    99
    丢 vim 用了这么久真没用过代码补全
    cxbig
    cxbig
    May 17, 2018
    100
    学习曲线太高,各种合适的插件要自己安装配置、安排快捷键。没几年功夫慢慢深入,不成的。
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4353 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 217ms · UTC 09:52 · PVG 17:52 · LAX 01:52 · JFK 04:52
    ♥ Do have faith in what you're doing.