正文  环境搭建 > Eclipse ADT >

Eclipse 中隐藏的 5 个非常有用的功能

Eclipse就是一头野兽。它也是一套设备,神秘但更具威力。有些人称它为一个持续变形机。另一些人则称它是一个变异体。不错,它很庞大,需要花费多年才能掌握。而在你好不容易掌握之后,你的老...

Eclipse就是一头野兽。它也是一套设备,神秘但更具威力。有些人称它为一个持续变形机。另一些人则称它是一个变异体。不错,它很庞大,需要花费多年才能掌握。而在你好不容易掌握之后,你的老板出现了然后告诉你: 现在我们要用NetBeans了。

开玩笑了。没有人会去用NetBeans,除了Adam Bien。好了,下面让我们看看5个非常有用的、被隐藏了的Eclipse特性。

1: 我最爱的特性:收藏夹

每个人都会使用到一些静态方法类库。从Java 5之后,我们可以静态进入它们,所以我们不再需要像下面这样写代码

SomeVeryImportantUtility.split(string1, string2);

但是,谁又会愿意在每一个类中去把所有那些方法都手动的进行静态进入呢? 没有人。因为你可以在选项中定义你的收藏类型和收藏成员:

Preferences > Favorites

然后,你只需要敲入开头的字母并使用自动补全功能:

自动补全

自动补全功能也可以进行必要的静态引入。比方说在使用DSL的诸多功能时,这就非常有用。很明显,你需要谨慎决断,哪些是你真正最常用到的类库,以及哪些是这些类库中你最常用到的类。如果你是jOOQ blog(或是其联盟的一员)的用户,我可以给你一个提示。即永远把org.jooq.impl.DSL纳入收藏。

2: 令人惊叹的块选择模式

我最近在该博文中记录过这一点。该功能真是棒极了,文章中多次提及它的优点。

Eclipse 中隐藏的 5 个非常有用的功能

代码块选择

注意高亮显示的按钮,从昨天数第6个。这就是令人惊叹的“块选择模式” (Windows中的快捷键是Alt-Shift-A,或者使用Ctrl+3然后敲入选择块)。 它能让你在开阔的范围内在选定行的相同位置上进行录入。当你不得不编辑大量几乎相同的行时,这非常有用。

3: EGit工作台视图

显然,并非所有的EGit用户知道的这一视图。事实上,我认为,这就是为什么我不使用shell命令的最重要的原因。看看这个完美的东西(beauty美人):

工作台视图

好吧,不是一个真正的美人。这让我想起了这本 Eric Burke的漫画节选。但我们仿佛在虚空转换之地(transmogrifier land),这个工作台视图充满变化,一旦你从一个repository同步它的源,这个视图将等待变更被added / committed / pushed。我现在可以在每行的基础上决定,将哪个变化添加到索引中(注意,我没有添加主要方法)。这导致有staged(添加)的unstaged(未添加)的变更。在EGit中,我现在可以在一次操作中直接提交,提交+推送,修改+提交,修改+提交+推送。也可以尝试在命令行这样做。

现在这次提交后,我又能在一个单独的提交stage/add主要方法。 我猜,在背后,这可能是通过运用存储或某种其他的本地缓存来实现的。 我不在乎怎样 , 这是漂亮的 !

我大概可以用这个漂亮功能做得更多,但那将填满一整本书(我在等待这样的一本书,@niborst,如果你正在看这篇文章的话)

如果你不明白上述任何Git的话题,试试这个流行的指南,或加入我…

4:类型过滤器

对的,这是因为Eclipse的盒外自动补全毫无价值。是的,事实就是这样的。没有人会真正在API内部去调用callhashCode(), wait()或者notifyAll()。并且,事实上,现在几乎没有人愿意对一个锁对象去调用wait()或者notify(),除非他们在写JDK的并发库。但是庆幸的是,有人为我们免费实现了, 他们应该是使用VI,emacs或者一个16进制编辑器,因此他们不用考虑对象方法。

于是,为什么我的自动补全弹出框是一些没有意义的内容?好吧,让我们创建一个类先。。。

选项真心多啊?是不是?

哇哦。我本以为我只有一个方法?我不考虑equals(),尽管我实际上很少输入equals(),我可以正确输出它。以此,我准备把它从那一堆中挪走:

Preferences > Type filters

此外,感谢Eclipse对at的提及。我希望存在一个选项从JDK,从我们的集合内存中完全移除awt。但是,至少,因为添加了awt到类型选择器里,这让你免去了选择是该导入java.util.List(99.9%) 还是java.awt.List(8.3%)。舍入误差的发生决定于你之前不小心错误选择集合的次数,有时,你会怀疑为什么不能直接分配一个数组集合。在此感谢awt。此外,你必须关注你多变的WIN8是如何在截屏的时候改变窗口的颜色的。好了,现在下一步是什么呢?总之先回到Eclipse,让我们在此试下自动补全。。。

终于变成了只有一个了

更好了?当然更好了!

现在。。。

5: 格式化标签

在花了这么多时间选择代码块,谨慎的格式化SQL语句——往往是不会操作的人或者不没按照样式说明操作的,再或使用自动格式化的时候把之前美观的那些全部代码都格式化到一行了。而且还持续不到很久。使用简单易拼的格式化标签来“保护”代码:

首选在> 格式化选项 > 打开/关闭标签

由于在这过程中可能会多次输入标签,记得使用些简明的东西“保护”下自己精心写出来的那些SQL语句:

这样(代码,SQL语句)就被保护起来了

除非是不熟悉操作的人忘记或者没按照样式说明操作而没有保存格式化设置,或者还有一类是拿Netbeans玩一下而没真正使用的的情况,否则是不会再有人能接触到那些代码了。

同样,这些标签也适合很难格式化的DSLs

还有更多

Eclipes真是个疯狂的野兽。每年都会有新特性加入到新版本中,而我们Java开发者能免费使用它们!你可以向Eclipse提供回馈。不过我想基金会(由IBM支持)应该不太依赖捐助, 所以你回馈的最好方式是提交bug报告和功能需求,这里是连接:

https://bugs.eclipse.org/bugs

… 或者如果你足够勇敢,可以注册到CLA并开始贡献代码。

对这个令人惊叹的开发工具来说,总会有提升的空间,可以为我下一篇top 5系列文章提供资料和可选话题。