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

Vim 8 下面如何搭建 C/C++ 开发环境

  •  4
     
  •   skywind3000 · 2018-04-23 01:03:02 +08:00 · 11203 次点击
    这是一个创建于 2400 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Vim 8 下面如何搭建 C/C++ 开发环境

    http://www.skywind.me/blog/archives/2084
    41 条回复    2018-05-29 13:52:26 +08:00
    defel
        1
    defel  
       2018-04-23 02:10:28 +08:00
    Visual studio 不是很好用么,还有 jetbrain 全家桶,而且如果工程比较大感觉 Vim 管理挺吃力的。
    abowloflrf
        2
    abowloflrf  
       2018-04-23 02:19:19 +08:00 via iPhone
    最近正在学习写服务端的 c,马一下,感谢楼主
    skywind3000
        3
    skywind3000  
    OP
       2018-04-23 02:25:07 +08:00
    @defel 我从来不拒绝使用 Visual Studio,但我主要 C/C++ 代码都是再 Vim 里编写的。
    ladrift
        4
    ladrift  
       2018-04-23 02:30:10 +08:00 via iPhone
    c 大重出江湖
    congeec
        5
    congeec  
       2018-04-23 03:25:56 +08:00
    看了下,不错
    我补充两点
    目前 YCM 没有能力重构,cquery, rtags, and clangd 能重构。建议用 clangd。小范围替换用 vim 自带的正则就够了
    debug 么,目前没有很好的 gui 工具集成到 vim 里。用 cgdb 还不如裸 gdb 来的爽
    q397064399
        6
    q397064399  
       2018-04-23 06:58:48 +08:00
    很好奇是本人吗?知乎很活跃的大叔级牛逼程序员,在 v2 好像发言较少。
    ppyybb
        7
    ppyybb  
       2018-04-23 08:14:58 +08:00 via iPhone
    @q397064399 应该是,blog 和 github 都是这个名字
    muziki
        8
    muziki  
       2018-04-23 08:16:26 +08:00 via iPhone
    ycm 有点臃肿了 现在 lsp 越来越成熟
    BBCCBB
        9
    BBCCBB  
       2018-04-23 08:51:12 +08:00
    @muziki 老哥,lsp 是啥
    BBCCBB
        10
    BBCCBB  
       2018-04-23 08:53:39 +08:00
    dychenyi
        11
    dychenyi  
       2018-04-23 09:13:37 +08:00
    牛。
    不排斥别人用。我也一直用 vim 开发 c++。
    插件加多了感觉就像是刷个谷歌原生安卓,装了一堆的插件,感觉真不如用广告 UI 了
    但我觉得如果有桌面的话,适合个人称手的工具还是 IDE 吧。正好我是开发 qt,用 qtcreator 还有 vim 模式。
    linux40
        12
    linux40  
       2018-04-23 09:14:21 +08:00 via Android
    @BBCCBB language service protocol,微软出的,语言服务端提供索引代码的服务,编辑器直接调用。现在很多语言编辑器的体验和 IDE 差不多了,Java 除外。
    zhuangzhuang1988
        13
    zhuangzhuang1988  
       2018-04-23 10:03:00 +08:00
    @linux40 java 有的 eclipse/readhat 提供
    cstj0505
        14
    cstj0505  
       2018-04-23 10:18:43 +08:00
    强赞,去年整理下 vim 下的 c 开发配置确实太旧了
    aaronzjw
        15
    aaronzjw  
       2018-04-23 10:19:54 +08:00
    支持大佬, 用了一圈之后,最后还是用回了 vim
    webfrogs
        16
    webfrogs  
       2018-04-23 11:02:35 +08:00
    感谢,学习了很多~~
    glues
        17
    glues  
       2018-04-23 11:56:25 +08:00
    试了一圈补全,目前还是 YCM 最好用
    justfly
        18
    justfly  
       2018-04-23 12:16:30 +08:00
    感谢 知道了几个新插件 特别是 LeaderF
    lzhCoooder
        19
    lzhCoooder  
       2018-04-23 13:01:36 +08:00
    mark 学习一下,vim c/c++配置很久没动过了
    ech0x
        20
    ech0x  
       2018-04-23 13:08:51 +08:00 via iPhone
    @ppyybb 居然是本人吗?
    mickeyandkaka
        21
    mickeyandkaka  
       2018-04-23 13:11:44 +08:00
    mark
    ACool
        22
    ACool  
       2018-04-23 13:26:02 +08:00 via Android
    mark
    ppyybb
        23
    ppyybb  
       2018-04-23 13:29:02 +08:00 via iPhone
    @ech0x 我觉得是....
    fyibmsd
        24
    fyibmsd  
       2018-04-23 14:00:09 +08:00   ❤️ 1
    skywind3000
        25
    skywind3000  
    OP
       2018-04-23 16:10:58 +08:00
    @q397064399 是我,v2ex 上的不多,偶尔过来看看。
    lzyfred
        26
    lzyfred  
       2018-04-23 18:40:53 +08:00
    @fyibmsd 这个知乎帖很不错的
    svenFeng
        27
    svenFeng  
       2018-04-23 21:00:36 +08:00
    我觉得未来的趋势还是 LSP 诶,虽然现在还不算完美,C++的话还在用 YCM,其他的如 Haskell, Rust 已经完全用 LSP 了,体验好很多,关键是把所以语言相关的东西全都放给语言后端引擎来处理,就不需要去拼凑插件了。
    lotem
        28
    lotem  
       2018-04-23 21:40:04 +08:00
    「 2018 年了,用点新方法,网上那些 Vim 开发 C/C++ 的文章真的都可以淘汰了。」
    skywind3000
        29
    skywind3000  
    OP
       2018-04-23 22:26:50 +08:00
    @svenFeng 可惜了 C/C++ 的几个 Server,clangd 功能不全,无法查找引用,cquery 还不稳定,经常出错,只有 YCM 还稳定点。
    bp0
        30
    bp0  
       2018-04-23 22:59:41 +08:00
    ALE 的问题是交叉编译时,老找不到头文件,而且还不像 YCM 那样可以定义项目用的 option。每次换项目都要改一次 vimrc 也是醉了。
    skywind3000
        31
    skywind3000  
    OP
       2018-04-23 23:02:05 +08:00
    @bp0 不用吧,有基于 buffer 的选项的啊。
    yazoox
        32
    yazoox  
       2018-04-23 23:23:33 +08:00
    LSP 可以用在哪里呢?
    linux40
        33
    linux40  
       2018-04-24 09:22:38 +08:00 via Android
    @zhuangzhuang1988 你用它写 JavaEE ?能读一下数据库就给你把代码写好了?
    linux40
        34
    linux40  
       2018-04-24 09:23:48 +08:00 via Android
    @skywind3000 cquery 有一个 find references 很爽。
    zhuangzhuang1988
        35
    zhuangzhuang1988  
       2018-04-24 09:58:41 +08:00
    MeteorCat
        36
    MeteorCat  
       2018-04-24 13:04:37 +08:00
    Clion,强势推荐,支持断点堆栈,能够用 GUI 来解决,没必要再 VIM 浪费太多时间,你是用来开发 C/C++,不是来学习如何用 VIM 开发 C/C++
    ivechan
        37
    ivechan  
       2018-04-24 23:51:00 +08:00
    受益良多,感谢
    tyfulcrum
        38
    tyfulcrum  
       2018-04-25 00:18:25 +08:00
    @fyibmsd 那个就是楼主……
    Yggdroot
        39
    Yggdroot  
       2018-04-25 16:24:33 +08:00
    赞,我也主要开发 c/c++, 看了后受益良多。
    linux40
        40
    linux40  
       2018-05-06 14:30:10 +08:00 via Android
    @zhuangzhuang1988。。。呃,好吧,java 用得少
    MaskRay
        41
    MaskRay  
       2018-05-29 13:52:26 +08:00
    可以来用我的 MaskRay/ccls 少了近 6000 行代码,更少 third_party。$ccls/memberHierarchy textDocument/definition workspace/symbol 一些细节有改进,cacheFormat 默认 binary 比 msgpack 更小,pipeline 简化但更不容易被保存弄坏

    等待 LanguageClient-neovim/issues/293 autozimu 把这个 custom xref 接口弄通用点支持 $ccls/base 等
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 03:01 · PVG 11:01 · LAX 19:01 · JFK 22:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.