常用的兵刃(一)

    当前我主要的工作环境在linux,当然也会在windows下写个文档看个图什么的。一年下来,接触到了不少的工具类软件,稍微梳理一下,也算是个总结。
    
    linux下:
    linux主要用作代码编译和分析环境,几轮淘汰下来,最终留在电脑里头的不过如下几种常用的工具:
    
    1.     repo + git
        这个工具自不用说,android官方的版本控制用的就是这套。常用的git命令学习不妨通过man,除此之外,这里有两套资料都是我早期接触git感觉非常好的:
           下载点击这里
            看日记学git,内容浅显易懂,循序渐进。一些常用的git指令都可以在文章中找到,推荐。
            点击打开链接
            Git中文教程,这篇文档比较详细的讲述了几个常用的git命令,可惜刚刚打开网站的时候发现已经404了,我会将转帖贴到下篇文章中。
        除此之外,还有几个比较有趣的git命令拿来跟大家分享
        1)    git reset --soft HEAD^
            这条命令专为git commit 之后,发现message写坏了的童鞋准备,可以在不影响到本地修改的情况下重新commit,本地之前的修改不会变更。如果想重新来过,就改为--hard就好了。如果在git add之后发现之前的改动有问题,则可以用git reset HEAD将添加的add回退,再用git checkout ***将服务器端的代码同步到本地,重新修改,重新add即可。
        2)    git log -p --author="name"
            这条命令常用作检查某人提交内容。现在项目中各个模块都有专人负责,如果要是该人离职或是调转,那么可以通过该条指令检视他之前在这个模块中曾经的提交修改内容,方便后来的人尽快接手工程。
        至于git merge,git diff等常见又好用的git指令,通过刚才介绍的文档就能了解了。
        
    2.    代码阅读工具
        说来惭愧,因为半路出家的缘故,我对eclipse的了解一直只限于最基本应用,至于一些高阶技巧完全无从下手,况且android自带比较完善的log机制。本着能不用ide就一定不用的原则,我尝试了若干文本工具,最终选定了wine+ source insight + notepad++ 的方式。
        1)    vim+cscope+ctags+fileexplore+Minibufexplorer
            最初我相中的是vim。在linux下它不愧是神一样的文本编辑器,无论是打开速度还是界面排布都非常符合我的审美。花了大概一周熟悉了操作之后,我直到现在翻页都条件反射的按C-f……非常好用的文本编辑器,但即使超神了,它也只是文本编辑器,面对庞大的软件工程,vim仍然力有不逮。
            促使我放弃vim的原因有二。第一是尽管用cscope+ctags已经能够比较好的展现各个函数调用,但是界面切换太慢,遇到需要多次查询各个文件的情况时,大量碎片时间就出现了。造成这个的原因我猜测是cscope生成代码索引时是加载当前目录下的所有文件,导致索引文件过大的缘故。如果能够指定加载的目录应该就可以解决,可惜我尝试了很多办法也没有找到比较好的解决方法。第二是问题是不能将字串从一个终端中粘贴到其他文件中,如果说前一个问题尚能忍受,这个问题才是vim看工程文档的致命伤,即使用上selection buffer来切换仍然是费时费力,在没有找到根本解决问题之前,我只好另谋他就。
            然而,就算有这两个问题,vim仍然是极好的编辑器,特别是当终端远程访问的时候,如果对方机器上也有一份配好的vimrc,那么远程操作与本地操作几乎感觉不到分别,非常舒服。直至现在,我的电脑上还留着一份配好的vimrc,偶尔维护一下,说不定哪天还能派上用场。
        2)    emacs
            emacs我接触的太晚,以至于小指仍然无法很好的适应诸如c-x c-f这样的操作,尽管调换了CapsLock和Ctrl,但是这样的使用仍然稍显反人类,不过看得出emacs也是极具潜力的文本工具,只是当前了解太少,还在学习尝试中,就不再班门弄斧了。
        3)    source insight + notepad++
            这两个都是windows下的工具,在wine下工作良好。不愧是最专业的工程代码阅读软件之一,source insight的强大不需赘述,这里给出一份链接来介绍常用的SI快捷操作:
            点击打开链接
            至于notepad++,在对比了UE之后我仍然选择了它,就是因为note的快捷和简单。可能是受了vim的影响,现在对于功能专注单一的软件更加欣赏,notepad++定制后功能不输SI,但是我仅用它来看log,因为这个家伙用来分析定位关键词实在是非常完美,顺便说一句plastic code wrap的主题相当赞。
            
        当然,除了专门用来分析代码和log的工具之外,其他的工具我更倾向于自己用shell来定制,在后续的文章中,我会将平日里编写的shell工具一一分享。
        
    3.    代码比较工具
        这个就没啥悬念了,meld大家都在用。windows下虽说有Beyond Compare,linux下也有vimdiff。但是说起来meld效果也不输前两者,也许也是对代码比对的需求较小吧,平日里没有太多的关注。不过在远程访问的时候还是多用vimdiff的。
        
        暂时就想到这么多了,如果还有发现会陆续补充。
        至于windows下的工具,留给后续文章吧。

你可能感兴趣的:(常用的兵刃(一))