常用的兵刃(一)

原创 2012年03月28日 11:29:51
    当前我主要的工作环境在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下的工具,留给后续文章吧。

java中常用的注解

@transient:如果用transient声明一个实例变量,当对象存储时,它的值不需要维持(实体类中有这个字段,但是表中没有的时候在这个字段是上加上这个注释) @Controller 负责注册一...
  • a709647964
  • a709647964
  • 2014年03月20日 17:04
  • 1206

Struts2常用类及方法

Struts的学习过程中,感觉很多东西都有一种似曾相识的感觉,但是同时也有一种傻傻分不清的感觉,今天就把那些我认为Struts中比较难分的类说明讲述一下。 Action Action是一个接口...
  • caoyujiao520
  • caoyujiao520
  • 2017年03月13日 18:04
  • 419

Java中常见的注解

Java中常见的注解 1、JDK自带的注解@Override  @Deprecated  @Suppvisewarnings 常见第三方注解 Spring:@Autowired  @Service  ...
  • u012110719
  • u012110719
  • 2015年08月17日 16:23
  • 2723

水平居中&垂直居中常用方法总结

PS:本文是对本博客中转载的《垂直和水平居中方法小结》的删减及部分改动,均有实例展示 1 水平居中方法 1.1 文字的水平居中 代码: 水平居中 .box{ backgrou...
  • fengyinchao
  • fengyinchao
  • 2016年02月26日 16:21
  • 581

CSS3常用属性及效果汇总

本篇主要说了一些CSS3的常用新属性,并附上了代码及效果展示,内容包含了边框的圆角,阴影等效果,背景的增强型功能,文本效果改变等内容。...
  • lyznice
  • lyznice
  • 2017年01月06日 20:14
  • 2041

Java中常用的Filter过滤器

一、字符编码的过滤器  [java] view plaincopyprint? package com.zhaokuo.filter;      imp...
  • he90227
  • he90227
  • 2014年09月05日 15:44
  • 1192

String类中常用方法归纳

版权声明:本文为博主原创文章,未经博主允许不得转载。 [java] view plain copy   String类中提供了大量的操作方法,这里例举13种关于String类...
  • melodysky
  • melodysky
  • 2016年07月20日 13:27
  • 4726

Java中常用的类及常用方法的一些实例

Java常用类:Object、Math、String、包装类、Date Java集合框架:                         接口:Collection、List、Set、Map、Ite...
  • wxddsr
  • wxddsr
  • 2015年09月12日 10:12
  • 1254

java 常用汉字区间

\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a \u...
  • lanshengsheng2012
  • lanshengsheng2012
  • 2013年05月24日 13:41
  • 2988

jquery常用方法总结

取值与赋值操作$("#ID").val(); //取value值 $("#ID").val("xxx"); //赋值 $("#ID").text(); //相当于取innerText $("#ID")...
  • tiana0
  • tiana0
  • 2017年01月14日 17:12
  • 1759
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:常用的兵刃(一)
举报原因:
原因补充:

(最多只允许输入30个字)