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

9102 年了, mac 下有没有能替代 source insight 的 c/c++源代码阅读软件

  •  
  •   52coder · 2019-04-02 19:49:42 +08:00 · 28679 次点击
    这是一个创建于 2069 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 V2EX 搜了好多帖子,看到大家从 win 切换到 mac 时少了 source insight 所带来的不习惯。 由于 V2EX 里的帖子有一些比较久了,现在 mac 平台阅读 c/c++代码使用什么 ide.只是阅读,由于代码量大,本地编译不现实。 最好是 mac win 跨平台的.

    101 条回复    2020-12-10 16:03:44 +08:00
    1  2  
    x1596357
        1
    x1596357  
       2019-04-02 19:58:19 +08:00 via iPhone
    qtcreator, 平时看 wine 代码 4 百万行都不怎么卡
    imkerberos
        2
    imkerberos  
       2019-04-02 20:00:36 +08:00
    没有.
    hilbertz
        3
    hilbertz  
       2019-04-02 20:02:39 +08:00
    vs, vsc
    52coder
        4
    52coder  
    OP
       2019-04-02 20:06:22 +08:00
    @x1596357 我怎么感觉这货好卡呀
    52coder
        5
    52coder  
    OP
       2019-04-02 20:07:29 +08:00
    @hilbertz vscode 是不是要配置,查看引用是不是要装 gtags 等?
    waruqi
        6
    waruqi  
       2019-04-02 20:08:40 +08:00 via Android   ❤️ 1
    understand
    52coder
        7
    52coder  
    OP
       2019-04-02 20:11:15 +08:00
    @waruqi 是否有 1.跳转到实现 2.选中变量 宏 函数 查看所有引用 等基本功能?
    hilbertz
        8
    hilbertz  
       2019-04-02 20:26:57 +08:00
    @52coder vscode 装 c/c++插件就可以了
    52coder
        9
    52coder  
    OP
       2019-04-02 20:30:06 +08:00
    @hilbertz 在你发帖前我装了几个插件,还是不能查看这个函数或者变量被跨文件夹下的哪个文件里调用
    superzou
        10
    superzou  
       2019-04-02 20:36:26 +08:00 via Android
    understand
    52coder
        11
    52coder  
    OP
       2019-04-02 20:52:24 +08:00
    @superzou understand 再加一票,我晚上回去试试。
    52coder
        12
    52coder  
    OP
       2019-04-02 20:53:37 +08:00
    @hilbertz 装了 c/c++插件,实现不了查看引用功能,搜索了下还要装 gtags,现在在 windows 上试验,mac 上晚上下班回去试验。
    fengjianxinghun
        13
    fengjianxinghun  
       2019-04-02 20:56:48 +08:00 via iPhone
    understand
    ggicci
        14
    ggicci  
       2019-04-02 20:57:48 +08:00
    sourcegraph,还能自己搭私服
    fengjianxinghun
        15
    fengjianxinghun  
       2019-04-02 20:58:16 +08:00 via iPhone   ❤️ 1
    mac/linux 调试我用 idapro 源码调试
    看代码 understand
    写代码 emacs
    kristpan
        16
    kristpan  
       2019-04-02 21:16:34 +08:00 via Android
    你们的 understand 用的盗版的吗?
    52coder
        17
    52coder  
    OP
       2019-04-02 21:46:57 +08:00
    @kristpan 如果要用 understand 的话,我可能要用为数不多的盗版了。略贵呀
    52coder
        18
    52coder  
    OP
       2019-04-02 21:47:42 +08:00
    @ggicci 自己搭代码服务器,然后网页用 sourcegrah 插件?少年你骨骼清奇呀。哈哈哈
    sadhen
        19
    sadhen  
       2019-04-02 21:48:09 +08:00
    如果在参与开源项目的话,可以向 Intellij 申请 CLion 的 License
    waruqi
        20
    waruqi  
       2019-04-02 22:22:20 +08:00 via Android
    @52coder source insight 有的 基本都有,而且是跨平台的
    sinxccc
        21
    sinxccc  
       2019-04-02 22:25:36 +08:00
    我选择 wine Source Insight..
    zjsxwc
        22
    zjsxwc  
       2019-04-02 22:26:48 +08:00 via Android
    jb 家的不好用吗?
    yuting0501
        23
    yuting0501  
       2019-04-02 23:19:16 +08:00 via iPhone   ❤️ 2
    我觉得 VSCode 可以结束这个话题,配置好 intellisense,source insight 这种上古软件可以安心退休
    hackpro
        24
    hackpro  
       2019-04-02 23:22:38 +08:00
    understand
    wzhy
        25
    wzhy  
       2019-04-02 23:40:25 +08:00 via Android
    @x1596357 qtcreator 打开一个项目中的源代码文件( cpp),这个文件中有很多黄色的 warning (语法之类的),然后就相当卡,特别是改正了其中几个 warning 的瞬间,卡到爆……有没有办法解决?
    minami
        26
    minami  
       2019-04-02 23:56:01 +08:00
    @wzhy #25 是不是打开了 CppCheck 这个插件?
    ggicci
        27
    ggicci  
       2019-04-02 23:59:44 +08:00
    @52coder 不用装插件啊,私服就本地 docker pull 啊,没有你想象中的那么坏
    lovedebug
        28
    lovedebug  
       2019-04-03 00:05:19 +08:00 via Android
    opengrok ?万能
    52coder
        29
    52coder  
    OP
       2019-04-03 00:16:32 +08:00
    @waruqi 中文注释乱码如何破,设置里面打开方式为 utf-8
    52coder
        30
    52coder  
    OP
       2019-04-03 00:16:53 +08:00
    @hackpro 中文注释乱码如何破,设置里面打开方式为 utf-8
    chiu
        31
    chiu  
       2019-04-03 00:40:01 +08:00 via Android
    公司有配 SlickEdit 的 license,但我自己用不习惯,Mac 目前用 VSC,配合一些插件用还可以。
    weiqk
        32
    weiqk  
       2019-04-03 00:44:46 +08:00 via Android
    codeblocks 了解下,我觉得是最好的代码阅读工具
    52coder
        33
    52coder  
    OP
       2019-04-03 00:51:50 +08:00
    @yuting0501 决定折腾 vscode 了,有没有具体配置相关的教程?
    leighton
        34
    leighton  
       2019-04-03 00:54:14 +08:00 via iPhone
    我不信 qtcreator 还能比 vscode 卡
    ourleven
        35
    ourleven  
       2019-04-03 01:27:16 +08:00 via iPhone
    竟然没人提 sublime
    52coder
        36
    52coder  
    OP
       2019-04-03 08:15:32 +08:00
    @ourleven sublime 需要安装什么插件?需要记住很多快捷键吧?单独装上去连跳转都没有
    livepps
        37
    livepps  
       2019-04-03 08:26:01 +08:00 via Android
    cmake 工程,clion 非常好用,如果不是,跳转可能有时候不准确。
    BBCCBB
        38
    BBCCBB  
       2019-04-03 08:37:53 +08:00
    clion 或者 eclipse 试试
    52coder
        39
    52coder  
    OP
       2019-04-03 09:35:08 +08:00
    @livepps 不是 cmake 工程,都是 makefile,clion 找师弟申请了免费版
    52coder
        40
    52coder  
    OP
       2019-04-03 09:36:18 +08:00
    @BBCCBB clion 基于 cmake,我现有的工程都是 makefile,楼上也有朋友说不是 cmake 工程跳转不准确,我昨天试验确实是这样。
    x1596357
        41
    x1596357  
       2019-04-03 09:39:09 +08:00 via iPhone
    @wzhy 关闭 line annotation 试试,如果项目真的很大你要看完成索引没有,在右下角有个进度,没完成索引前 CPU 占用率是很高的
    ww2000e
        42
    ww2000e  
       2019-04-03 09:40:58 +08:00
    vim+ycm...
    somebody
        43
    somebody  
       2019-04-03 09:43:33 +08:00 via Android
    CLion,自己导入一下,生成 cmake 文件,再适当修改。
    看 40 万行代码的 Android art 代码全靠它
    x1596357
        44
    x1596357  
       2019-04-03 09:44:08 +08:00 via iPhone
    再不行的话,你可能需要关闭 clang 索引插件,大项目会吃几个 G 内存,你可能内存不足了。
    juzipeek
        45
    juzipeek  
       2019-04-03 09:45:44 +08:00
    可以尝试下 understand (收费),kdevelop (免费)
    tcfenix
        46
    tcfenix  
       2019-04-03 09:47:02 +08:00
    跨平台的话真心推荐 clion,保证 win mac 等各种平台统一的体验,甚至于其他语言,比如 Golang,JAVA,PYTHON 都能保证统一的手感.
    clion 的跳转应该是基于 cmake 的,之前使用个 makefile 的时候就是我又自己手动维护一个 cmakelist 来保证跳转.
    eliteYang
        47
    eliteYang  
       2019-04-03 09:47:21 +08:00
    clionvscode vs for mac
    52coder
        48
    52coder  
    OP
       2019-04-03 09:51:52 +08:00
    @juzipeek understand 使用的时候中文注释乱码,不知道你知不知道如何配置?
    cstj0505
        49
    cstj0505  
       2019-04-03 09:56:18 +08:00
    vim+ycm +1
    GoodRainChen
        50
    GoodRainChen  
       2019-04-03 10:02:45 +08:00
    居然没有提 xcode 的?
    52coder
        51
    52coder  
    OP
       2019-04-03 10:11:46 +08:00
    @cstj0505 这个对于平时使用 ide 习惯的人来说,使用习惯难以切换。
    52coder
        52
    52coder  
    OP
       2019-04-03 10:14:04 +08:00
    @cstj0505 vim+ycm 跳转和自动补全可以实现之后,查看函数调用之类的呢?颜值党表示,vim 看起来有点古老了。
    52coder
        53
    52coder  
    OP
       2019-04-03 10:14:59 +08:00
    @GoodRainChen xcode 是不是太重了?
    CodingDoge
        54
    CodingDoge  
       2019-04-03 10:17:13 +08:00
    @waruqi 碰巧看到我司大佬😏
    52coder
        55
    52coder  
    OP
       2019-04-03 11:17:53 +08:00
    @CodingDoge 你司大佬的 understand 怎么解决中文注释乱码问题的 @waruqi
    boywhp
        56
    boywhp  
       2019-04-03 11:24:13 +08:00
    vim
    yuting0501
        57
    yuting0501  
       2019-04-03 11:27:46 +08:00 via iPhone
    @52coder VSCode 官方教程就可以了,Qt 我也用,流畅度没有其他人说的会比 VSCode 好
    0871087123
        58
    0871087123  
       2019-04-03 11:42:39 +08:00
    understand
    vim+YCM
    clion
    sublime
    atom
    nodepad++
    sourceinsight
    看啥情况咯,这些我都用
    0871087123
        59
    0871087123  
       2019-04-03 11:42:54 +08:00
    对了还有 visual studio
    0871087123
        60
    0871087123  
       2019-04-03 11:43:30 +08:00
    是了,mac 上面,那 visual studio 可以改成 vscode ………………
    tomychen
        61
    tomychen  
       2019-04-03 11:44:48 +08:00
    如果说 vim 会不会挨喷...
    vim + ctags
    LANB0
        62
    LANB0  
       2019-04-03 12:04:26 +08:00
    即使过了这么多年,依然没有可以替代 sourceinsight 的,win 下也是。函数列表(支持搜索),跳转到定义、跳转到调用处、引用全项目搜索。vscode+c/c++插件没有引用搜索、每次打开项目都很卡顿。clion 直接很多函数变量识别不到。understand 是最接近 si 的,三年前尝试了几天,还是换回了 wine+si,功能使用步骤太繁琐
    karllynn
        63
    karllynn  
       2019-04-03 12:41:54 +08:00
    随便用啥看,vscode,vim 都行,虚拟机用 vs 看也有过

    我讨厌 C++
    wzhy
        64
    wzhy  
       2019-04-03 12:51:02 +08:00 via Android
    @minami 谢谢提醒,但是我应该没用这个插件,因为找半天没找到…
    wzhy
        65
    wzhy  
       2019-04-03 12:54:53 +08:00 via Android
    @x1596357 您说的没错,索引完不会卡,但是只要修改其中的一两行代码,它会重新索引,那一下特别占 CPU。
    c9106
        66
    c9106  
       2019-04-03 13:03:37 +08:00
    slickedit 完美代替 source insight
    yuankui
        67
    yuankui  
       2019-04-03 13:56:10 +08:00
    lsmgeb89
        68
    lsmgeb89  
       2019-04-03 14:15:17 +08:00
    VSCode 装微软官方的 C++ 插件,根据官方文档简单配下,只要不是大型项目(百万行级别的),性能都可以。

    其实只要是 language server 实现的都可以用。

    Source Insight 可以直接删掉了
    fengjianxinghun
        69
    fengjianxinghun  
       2019-04-03 14:18:02 +08:00
    @lsmgeb89 完全不行,不信试一下 linux 源码
    lixianhuei
        70
    lixianhuei  
       2019-04-03 14:32:25 +08:00   ❤️ 1
    很多人不知道一个神奇:IDA。我用来做逆向工程的,交叉引用,注释,图例,插件,什么都可以做,完美。。

    用来读各种源码也爽翻天的。。
    thinkloki
        71
    thinkloki  
       2019-04-03 14:32:28 +08:00
    插眼求一个看 android 源码的工具。
    livepps
        72
    livepps  
       2019-04-03 14:34:22 +08:00 via Android
    @52coder 如果工程结构不复杂,自己写下 cmake 文件,复杂的 makefile 写成 cmake 那就头疼了
    lsmgeb89
        73
    lsmgeb89  
       2019-04-03 14:38:49 +08:00   ❤️ 1
    Google 搞的 clangd 应该是大杀器,不过还需要时间。

    &t=2688s

    视频里提到了 cquery 是现有比较成熟的方案。
    lsmgeb89
        74
    lsmgeb89  
       2019-04-03 14:52:51 +08:00
    @fengjianxinghun 公司里 170 万行的 C++14 的项目,主要是借助 cmake 生成的 compile_commands.json 配置 C++ 插件,VSCode 精确性和性能都还可以接受。
    jfcherng
        75
    jfcherng  
       2019-04-03 14:53:05 +08:00
    Sublime Text 的關鍵就是 LSP 的支持。

    clangd / cquery 的關鍵都是生成 compile_commands.json。
    cmake 的工程本身就有 flag 能生成 compile_commands.json
    makefile 的工程可以用 compiledb 生成 compile_commands.json

    Sublime Text + Clangd 踩坑: https://git.io/fjIrK
    lsmgeb89
        76
    lsmgeb89  
       2019-04-03 14:57:30 +08:00   ❤️ 2
    这里有一份 language server 的实现情况

    https://langserver.org/
    Deville
        77
    Deville  
       2019-04-03 14:57:55 +08:00
    昨儿 vs2019 不是发布了 Mac 版吗
    piapia
        78
    piapia  
       2019-04-03 15:07:32 +08:00 via iPhone
    @Deville 貌似不支持 c/c++
    qgymib
        79
    qgymib  
       2019-04-03 15:11:02 +08:00
    凡是用于阅读 C/C++代码的无脑推荐 eclipse cdt,凡是用于书写 C/C++代码的无脑推荐 visual studio
    waruqi
        80
    waruqi  
       2019-04-03 15:38:50 +08:00 via Android
    @CodingDoge
    @52coder 没遇到过,不怎么看带中文注释的代码,你可以这个脚本用 iconv 批量吧源文件转成 utf8 后再看试试
    fengjianxinghun
        81
    fengjianxinghun  
       2019-04-03 15:47:33 +08:00
    @Deville mac 版的 vs 那个就是收购的 monodevelop,只能搞 C#
    Deville
        82
    Deville  
       2019-04-03 15:52:36 +08:00
    @piapia
    @fengjianxinghun
    搜嘎。。。
    piapia
        83
    piapia  
       2019-04-03 16:05:27 +08:00
    @thinkloki #71 搭车同求... 另外请问你试过 vscode 么?
    thinkloki
        84
    thinkloki  
       2019-04-03 16:09:21 +08:00
    @piapia 没试过我都是用 Subline 的,很不方便。
    fengjianxinghun
        85
    fengjianxinghun  
       2019-04-03 16:10:30 +08:00
    @waruqi Project->Configure Project->File Options-> Encoding
    miscmz
        86
    miscmz  
       2019-04-03 16:17:37 +08:00 via Android
    vim,vscode
    JasperHale
        87
    JasperHale  
       2019-04-03 16:39:21 +08:00
    看代码+部分编辑 vscode+clang 跳转,结构体补全 /查看引用 等都可以胜任. Subline / atom 同理.
    clang 的补全和提示比 gtags 要好. vscode+gtags 效果不佳,当然也可能是配置的方式不对...
    clion 基本完美,但是收费..比较吃内存吧,新版本应该好一些,N 久没用了.
    JasperHale
        88
    JasperHale  
       2019-04-03 16:41:34 +08:00
    忘了 ps : 以上实践基于 c 而非 c++. vscode 的 c/c++插件,结构体补全不太好
    HangoX
        89
    HangoX  
       2019-04-03 19:11:55 +08:00
    说 jetbrains 的,是没看过大项目吧。。。Android 源码要弄到比较小的范围才能索引,不然就挂
    allenforrest
        90
    allenforrest  
       2019-04-03 19:14:23 +08:00
    我靠,居然不用 Xcode 吗?重归重,但也要看你工程本身的规模啊。
    52coder
        91
    52coder  
    OP
       2019-04-03 20:36:32 +08:00
    @JasperHale 我使用了 vscode + gtags,索引起来比较费劲,比如有些全局变量我想看哪修改的,shift+f12 有时候不灵,只能搜索。
    52coder
        92
    52coder  
    OP
       2019-04-03 20:37:25 +08:00
    @Deville 没看到有支持 c++,而且前面评价比较差
    52coder
        93
    52coder  
    OP
       2019-04-03 20:39:25 +08:00
    @allenforrest 阅读代码都是万行以内的小模块,15 最低配 pro,开 xcode 再开别的,内存扛不住
    freedomshi
        94
    freedomshi  
       2019-04-04 11:11:21 +08:00
    eclipse 了解一下。。。
    52coder
        95
    52coder  
    OP
       2019-04-04 14:28:32 +08:00
    @freedomshi eclipse 放假了解下,目前在用 understand 和 vscode,understand 静态分析功能真心强大。
    wenweihu86
        96
    wenweihu86  
       2019-05-06 17:45:01 +08:00
    试过了 vscode、slickedit,都没法替代 source insight。slickedit 最接近,但查看函数引用功能没有; vscode 就更差了,跳转到实现都没做好。
    52coder
        97
    52coder  
    OP
       2019-05-06 21:54:44 +08:00
    @wenweihu86 跳转有时候都得卡一下,哈哈哈,全局变量看哪些地方调用,有的可以看,有的不可以看,但是界面漂亮,好看不好用,你有好的推荐没
    Kellerman
        98
    Kellerman  
       2019-10-24 16:51:17 +08:00
    @fengjianxinghun 可以吧,我就在看。
    piapia
        99
    piapia  
       2019-11-26 02:15:58 +08:00
    @lixianhuei #70 这个是啥神奇操作?请教下怎么导入源码呢?
    liyafe1997
        100
    liyafe1997  
       2020-10-19 15:52:13 +08:00
    source insight 我最需要的功能就是看函数调用关系( Relation ),至今没找到哪个其它的工具能实现这个功能 。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2446 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 02:09 · PVG 10:09 · LAX 18:09 · JFK 21:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.