Vim 8 下面如何搭建 C/C++ 开发环境 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
skywind3000
V2EX    Vim

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

  •  4
     
  •   skywind3000 2018-04-23 01:03:02 +08:00 11723 次点击
    这是一个创建于 2728 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 这个知乎帖很不错的
    Em5O7B1JGfjQnBry
        27
    Em5O7B1JGfjQnBry  
       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 也是醉了。
    div id="r_5591181" class="cell">
    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     Solana     3687 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 54ms UTC 10:21 PVG 18:21 LAX 03:21 JFK 06:21
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86