Eclipse就是一头野兽。它也是一套设备,神秘但更具威力。有些人称它为一个持续变形机。另一些人则称它是一个变异体。不错,它很庞大,需要花费多年才能掌握。而在你好不容易掌握之后,你的老板出现了然后告诉你: 现在我们要用NetBeans了。
开玩笑了。没有人会去用NetBeans,除了Adam Bien。好了,下面让我们看看5个非常有用的、被隐藏了的Eclipse特性。
1: 我最爱的特性:收藏夹
每个人都会使用到一些静态方法类库。从Java 5之后,我们可以静态进入它们,所以我们不再需要像下面这样写代码
但是,谁又会愿意在每一个类中去把所有那些方法都手动的进行静态进入呢? 没有人。因为你可以在选项中定义你的收藏类型和收藏成员:
Preferences > Favorites
然后,你只需要敲入开头的字母并使用自动补全功能:
自动补全
自动补全功能也可以进行必要的静态引入。比方说在使用DSL的诸多功能时,这就非常有用。很明显,你需要谨慎决断,哪些是你真正最常用到的类库,以及哪些是这些类库中你最常用到的类。如果你是jOOQ blog(或是其联盟的一员)的用户,我可以给你一个提示。即永远把org.jooq.impl.DSL纳入收藏。
2: 令人惊叹的块选择模式
我最近在该博文中记录过这一点。该功能真是棒极了,文章中多次提及它的优点。
代码块选择
注意高亮显示的按钮,从昨天数第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主要方法。 我猜,在背后,这可能是通过运用存储或某种其他的本地缓存来实现的。 我不在乎怎样 , 这是漂亮的 !
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。
另外还有一些快捷键供大家参考:
alt+/ 提示
ctrl+/ 注释
ctrl+d 删除行
alt+up|down 上、下移动
ctrl+alt+down 复制当前行
shift+alt+s,r|v getter、setter或者重写方法
ctrl+. 跳动需要处理的代码处,如果跳到错误代码处,警告代码处
ctrl+1 给出操作提示,如:写serializeId,异常捕获等
ctrl+m 当前窗体最大化,最小化
ctrl+t 给出函数实现类,如:接口弹出实现方法,方法弹出继承重写方法
ctrl+shift+f 格式化