大家有木有看 linux 源码的经验捏 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
g0t3n
V2EX    Linux

大家有木有看 linux 源码的经验捏

  •  
  •   g0t3n 2014-09-11 22:54:19 +08:00 8404 次点击
    这是一个创建于 4118 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我的原意是看 linux 内核的源码(好吧不能说看但是怎么说也应该虐待下自己撒) 还原到最初的需求其实就是肿么好好的看一个[linux]项目的代码,大家有经验么
    本来我是个 vim 死忠。但是突然发觉当上升到一个项目,各种交叉引用的时候就不是编辑器能满足我的需求了,一个 IDE 还是很必要的(想当初还是死死的鄙视俺 boss 用 IDE ),我现在是 vim+cscope+ctags 感觉还是不够快感。
    我简单的需求是
    * 特别是快速定位到某个文件 手工 ack/grep 出相关文件 # 这点直接 ack 就能做到了,但是能嵌入到 IDE 中还是很不错的
    * 鼠标指这能看到 函数 / 变量 的 定义/声明 能做好索引 # 这点我在见识过 vs 后我突然发觉我好落后
    * 高亮代码
    * 带逻辑的框框提示 # 介个的意思是 比如一个逻辑判断 if 代码块有一个小的连线连着

    拜托各位牛了
    22 条回复    2014-09-14 20:28:04 +08:00
    jybox
        1
    jybox  
       2014-09-11 23:48:00 +08:00
    听说 JB 新出了个 CLion
    jedihy
        2
    jedihy  
       2014-09-12 02:32:11 +08:00 via iPhone
    sbt2/3 +ctags插件,我用这个看内核源码的。仅次于win source insight
    initialdp
        4
    initialdp  
       2014-09-12 08:22:40 +08:00   1
    source insight吧。这么多年过去了,我还没见过比SI更强的看(编辑)C/C++代码的工具。
    leyle
        5
    leyle  
       2014-09-12 08:27:58 +08:00
    你说的这些需求,vim和它的插件都可以很好的完成,死忠就更要深入了解啊。
    happywowwow
        6
    happywowwow  
       2014-09-12 08:28:52 +08:00
    si是重量级工具 什么功能都有
    st是轻量级工具 界面风格简洁
    两个都在用
    helloworld00
        7
    helloworld00  
       2014-09-12 08:29:12 +08:00
    书和源代码一起看效果好一些

    推荐这本The Linux Kernel Primer
    http://book.douban.com/subject/1906552/
    zhangdawei
        8
    zhangdawei  
       2014-09-12 08:43:30 +08:00
    source insight很好用
    有一个可能的问题是,linux支持文件名大小写区别,windows不支持,
    farseer2014
        9
    farseer2014  
       2014-09-12 09:05:23 +08:00
    我用vim+gtags+unite.vim+unite-gtags。
    wizardoz
        10
    wizardoz  
       2014-09-12 09:20:17 +08:00
    @initialdp source insight 最大的缺陷,不能支持utf8编码。这个直接导致我不能用sourceinsight
    jsfaint
        11
    jsfaint  
       2014-09-12 09:25:05 +08:00
    kernel的源码需要和啥项目交叉么?
    如果是单纯的kernel, vim + gnu global 足矣(再广告一下俺的插件https://github.com/jsfaint/gen_tags.vim)
    如果需要项目交叉,引用其他的库之类的,用ctags可以,但是略慢
    也可以把youcompleteme配起来用,很不错
    Limy
        12
    Limy  
       2014-09-12 11:31:11 +08:00
    试一下 Linux Cross Reference
    http://lxr.free-electrons.com
    下面这个国内的有代码高亮,不过没有紧跟内核版本更新
    http://lxr.oss.org.cn
    xiaket
        13
    xiaket  
       2014-09-12 11:37:41 +08:00   1
    @zhangdawei 离题说下, 这个貌似是文件系统而不是操作系统级的问题.
    myrual
        14
    myrual  
       2014-09-12 11:52:44 +08:00
    source insight应该是最合适的。
    nicai000
        15
    nicai000  
       2014-09-12 12:13:36 +08:00
    每天看, 不过内核的源码用了很多结构体指针(用C实现初级的面向对象), 然后指来指去, 用啥IDE都追踪不到啊...

    我自己就是Vim + ctags + cscope, 偶尔用用lxr
    zhangdawei
        16
    zhangdawei  
       2014-09-12 13:11:54 +08:00
    @xiaket 是文件系统的问题,不过windows下好像没太好办法,所以我开了个samba
    soundbbg
        17
    soundbbg  
       2014-09-12 14:02:50 +08:00
    看过,不过最好和书一起看,边看书边看源码,会比较有效率。当然linux源码是很庞大的工程,需要时间。看到最后你就会发现计算机也不过就是这样了。
    hualuogeng
        18
    hualuogeng  
       2014-09-12 14:54:13 +08:00
    @laputaprince
    ack.vim Ack can be used as a replacement for 99% of the uses of grep.
    ag.vim Ag can be used as a replacement for 153% of the uses of ack.
    Zuckonit
        19
    Zuckonit  
       2014-09-12 17:19:38 +08:00
    ag.vim
    Youcompleteme
    g0t3n
        20
    g0t3n  
    OP
       2014-09-13 13:01:29 +08:00
    @all 昨天去了忙了木上网,没想到这么多回复,好感动
    ps:lxr 其实还是真的不错的,另外

    @jsfaint 我就看 kernel 而且是按兴趣抽出一小部分来看。另外我等下去看看你的插件哈~ [点个赞]
    @leyle 我确实是 vim 的死忠所以决定继续发掘

    @Limy thx 我一直是用国外的一个 lxr 速度有点慢,你贴出来的那个颜色看起还是很赞
    g0t3n
        21
    g0t3n  
    OP
       2014-09-13 13:18:38 +08:00
    @happywowwow st 是指 sublime Text?
    happywowwow
        22
    happywowwow  
       2014-09-14 20:28:04 +08:00
    @g0t3n 是的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2306 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 15:57 PVG 23:57 LAX 07:57 JFK 10:57
    Do have faith in what you're doing.
    ubao msn 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