从Visual Studio(vs)到Eclipse功能对比
习惯了Visual Studio(以下简称VS)的.NET程序员初用Eclipse时肯定会感到很不适应。我就是如此,觉得Eclipse实在是一款很垃圾的IDE。当然这种想法只是在恶心得我想砸电脑的时候一闪而过。Eclipse有Eclipse的优势,它免费、开源、可扩展性强,它的插件可以解决很多问题。
本文主要介绍VS中的常用功能(笔者常用的)在Eclipse下如何实现,希望对转战到Eclipse的原.NET程序员有所帮助。
1.自动换行
我相信很多VS使用者并不常用自动换行功能,而是通过手工输入回车的方式进行换行,这样的代码才够清晰。但本人实在是习惯了VS中的自动换行。因为并不是所有的程序员都会通过手工回车换行,而且即使手工换行了,不同分辨率的桌面看到的代码也可能是迥异的。这往往会导致令我深恶痛绝的横向滚动条。因此在我的VS里,必然选中自动换行并显示自动换行符号(Tools—>Options—>Text Editor—>All Languages—>Word wrap和Show visual glyphs for word wrap)。
令人失望的是,Eclipse中没有相应的功能,但我们可以通过格式化代码来实现。Window—>Preferences—>Java—>Code Style—>Formatter—>点击Show按钮—>Line Wapping选项卡—>在Maximum line width中设置每行的最大行宽,然后用Ctrl+Shift+F来实现自动换行。
但是这样的自动换行方式会修改源文档,当您只想阅读代码而不想修改时,这样的方式必然会带来麻烦。
2.Open Declaration
我们在阅读代码时,最常使用的一个IDE功能就是跳转到当前成员(包括参数、字段、属性、方法等)或类(还包括结构、枚举、委托等)的定义处。在VS中,我们可以右键点击该成员或类,然后选择“Go To Definition”。在Eclipse中,我们可以右键点击成员或类,然后选择“Open Declaration”(快捷键F3)。此外,还可以选择“Open Type Hierarchy”(快捷键F4),查看类型的层次结构。
3.References
与“Go To Definition”相对应的,在VS中我们可以选择右键菜单中的“Find All References”来查找当前成员的所有引用。在Eclipse中,我们需要选中一个成员或类,选择右键菜单中的“References”菜单,然后选择一个查找级别(Workspace、Project或Hierarchy),查找的结果将显示在“Search”视图中。
然而Eclipse查找出的所有引用并不能显示具体的语句,而只能具体到方法名称。这给查找带来了一定的不便。比如我们想在解决方案中查找哪些类实现了IFoo这个接口,在Eclipse中查找出来的是所用引用了IFoo的地方,而在VS中我们可以一目了然地发现那些语句使用了“: IFoo”。
4. Search
在编程时使用Ctrl+F查找某个关键字是不可避免的。VS中的Ctrl+F功能十分强大,它甚至允许我们选择查找的范围,如当前文档,还是整个解决方案。初用Eclipse时,会发现其Ctrl+F十分低能,只能检索当前文档的内容。其实,我们在Eclipse真正常用的不是Ctrl+F的“Find/Replace”,而是“Search”。
在Eclipse中点击“Search”菜单,选择“Search”选项(快捷键Ctrl+G),将打开Search界面。如下图所示:
你会发现其强大之处:通配符、搜索的类型、限制等等。你马上会联想到前面所说的Open Declarations和References都是实际上都是Search的一部分。
从Visual Studio(vs)到Eclipse功能对比