一、工作集(Working Set)
Eclipse中有很多用法都和工作集有关。可以把工作集当做是一个子工作空间。它可以按类型对一下项目分组。
工作集的好处是我们可以方便对项目的管理,例如有几十几百个项目在一个空间中,我们可能很难找,我们就可以按一定的类型来创建工作集来管理这些项目。
另外一些搜索,Task,Open in操作也可以指定工作集,减小搜索范围,达到更精准的搜索的目的。
下面就对工作集做一个简单的介绍:
如上图所示,我们在最常见的Project Explorer视图中,点击2所示的图标就可以看到有Select Working Set的选项,通过这个选项我们就可以选择工作集。
上面是选择工作集的对话框,我们可以使用New按钮新建工作集。
如上图所示是创建工作集的对话框,可以选择想要创建的工作集的类型。一般没有特殊需求选择Resource或者Java类型就可以了,感觉都差不多。
选择Resource,输入工作集的名称点击Finish就可以了。
然后选择我们要的工作集就可以了。
如上图所示,有了工作集我们就可以选择工作集,切换工作集了。还可以使用标注1的选项新建或者选择新的工作集。也可以使用2标注的选择,取消工作集视图模式。可以使用标注3编辑激活的工作集,标注4是已有的工作集。
二、Task 与 Bookmark
选择Window->选择Other:
选择Tasks视图,把视图窗口打开。
我们选择Task视图,选择标注2的地方的小三角,选择标注3所示的地方,配置Tasks视图。
我们看到已经有一个默认的TODOs配置了。
这里要区别一下不同的Task,打开Preference,搜索task:
我们选择配置的是Java->compiler->Task tags,而不是其他的Tag,这个和Mylyn的Tasks容易混淆啊。Mylyn的是任务管理用的,国内一般公司很少用,因为迭代比较快,可以自己玩一下,做个时间管理。
我们这里说的是Java编译器的Task,我们看到有3个FIXME,TODO,XXX这3个是默认的。一般我们见得最多的就是TODO了。下面说一下一般这3个的约定:
FIXME:表示需要修复的
TODO:表示待办事项
XXX:表示带优化的事项
当然还可以添加一下自定义的选项,也是非常简单的。有了这些Task标签就可以非常清除的知道自己的那些代码需要修改和优化。
还有一个作用就是充当书签,Eclipse的书签(Bookmarks),有2个比较蛋疼的地方,一个是代码变动了书签的位置不会变。就是你根据书签标记的代码,下一次进去可能是不同的代码位置了。还有一个是不能给jar引用的源码添加书签,这个在阅读框架源码的时候实在是太蛋疼了。
Task可以解决的是书签代码位置的问题,可以使用Task标记代码,你每一次进去都是相同的代码位置。但是这是需要写在源码中,不需要的时候需要删除,批量删除比较麻烦。
下面我们配置3个Task看一看:
如上图标注2所示我们配置了3个Task分别搜索TODO,FIXME,XXX,如标注1所示我们配置匹配前面3个配置中的任何一个就显示到列表中。如标注3所示我们现在搜索的范围是ME工作集。搜索的类型只是Java Task。
如上图所示我们在测试类中的Task Tag都在2标注所示的列表中了。这样就可以快速的定位到我们的标记代码位置了。也可以清楚的知道我们还有那些任务需要处理。
还可以工New Tasks View新建一个任务窗口,为这个窗口指定配置,例如公共scope选项设置选择过滤元素。
这个还可以当书签来使用,可以精准定位代码位置。因为Eclipse的书签(Bookmarks)是根据文件行来标记的,如果文件改变,代码就不在书签的位置了。
三、搜索
搜索基本是所有编辑器都提供的重要功能了,一个编辑器的搜索是否好用,很大程度上决定了易用程度。
如果你好很少使用搜索功能,说明你的工程还不够多,项目还不够大,相互依赖也够不复杂。要知道,很多时候都不是想MyBatis的Mapper和xml那样有好的映射关系还有一下工具支持的。所有搜索功能非常重要,一般来说用好Eclipse的搜索基本就不需要其他的专门的搜索工具了。
在Eclipse的工具栏,菜单栏,快捷键Ctrl+H都能激活搜索对话框,可见搜索在Eclipse中的确非常重要了。
下面我们先来看一下Remote Search
Remote Search看名字就知道是远程搜索,其实一般是搜索本地文件夹,使用搜索远程服务器的资源各种bug(看样子真的是使用的人比较少)。
如上图所示,标注1的地方就是要搜索的字符串,标注2是搜索的字符串是否区分大小写。标注3的选项表示是否开启正则匹配。
标注4表示是搜索文件名字的过滤如*.java就表示值搜索以Java结尾的文件。标注5,6和标注2,3表示的意思一样,只不过是针对文件名的。
标注7可以选择文件夹,可以是本地的,也可以是远程服务器的。但是连接远程服务器的配置各种出问题。一般搜索本地的就可以了。
标注8是表示是否搜索归档文件就是想zip,jar,war这样的包。标注9表示是否搜索子文件夹。
如上图所示,是文件搜索,这个和Remote Search差不多,只是在搜索范围不一样,可以通过选择缩小搜索范围。例如选择标注1可以搜索工作空间的内容,选择标注2搜索选择的资源,选择标注3搜索工程,选择标注4可以搜索工作集。
如上图所示是Java Search和前2个一样,不过可以选择的搜索范围更加的细致了。我们先来看一下标注1的Search For选项,就是要搜索的类型,Type就是class,interface,enum,annotation这些类型。Method是方法没有什么说的。Package包,Constructor构造函数,Field字段。
标注2所示的Limit To限制的是搜索范围。感觉All occurrences和Reference差不多,Delcarations是定义的地方,按这个搜索一般结果比较少,因为一般只有一个定义的地方。Implementors是搜索实现了这个类型的。例如在jre中搜索Number这个就会搜索出Integer,Long等类。
如上图所示是Type搜索的match locations选项。这些可以过滤更多的搜索,有兴趣可以依次尝试一下。
标注3所示的Search in的source是只在源码中搜索,Required project在依赖的工程中搜索,JRE libraries是搜索包含jre目录。Application libraries是搜索包含应用引入的jar包。
标注4的scope和前面介绍的一样。
Git Search还是比较有用的,特别是不熟悉git命令的同学。有时候就需要这个,比如你要搜索一下这一周你都做了那些提交,有比如你想看一下这个出了问题的提交的依赖关系都可以使用Git搜索,其实Eclipse的history基本都能看到。
其他的3个Task Search,JavaScript Search,Plugin Search我用的很少就不介绍了。如果你也不需要可以点击Customize:
让它们不出现在搜索对话框中。
另外再介绍2个重要搜索Ctrl+Shift+T搜索类,Ctrl+Shift+R搜索资源,非常常用的2个搜索功能。