netwjx

混乱与有序

在Eclipse中的Java开发技巧(3)

| 评论

  • 2012-09-10 增加和网友交流发现的很实用的快捷键, 和补充一些快捷键

这篇主要是默认设置下的常用的快捷键, 类似vim这类编辑器, 形成一个标准可以带来一些好处, 诸如方便交流, 不需要备份恢复太多自定义配置.

主要挑哪些很实用, 比较容易按到的.

自动完成

基本上有语法分析的编辑环境都会有自动完成, 经常的目的是提示类的方法等, Eclipse中自动完成是按Alt + /, 重复按可以在几个不同类目切换, 具体可以自己试试.

Alt + Shift + / 是用于参数提示, 和Alt + /效果差不多, 甚至有时能相互通用, 不过这个参数提示比较简单, 只有类型和参数名, 详细的还得在看方法提示时右边出现的说明.

Ctrl + Enter 这个不是单独使用, 而是在按了Alt + /之后使用, 用于修改一个方法调用, 因为按Enter将是插入代码. 具体见下图

Content Assist

在类一级, 即方法外面按Alt + /会提示可重写的方法.

在不同场景下的 Ctrl+1

Ctrl + 1是快速修正, 不同场合会有十分不同的功能, 我觉得它是Eclipse中使用频率仅次于Alt+/的快捷键.

创建变量方法和类

直接写变量赋值而不写变量类型时, 按Ctrl + 1

Quick Fix

快速修正的列表中

  • Create local variable ‘a’

    创建方法内变量, 上面已经有截图.

  • Create field ‘a’

    创建类变量.

  • Create parameter ‘a’

    创建方法参数.

  • Remove assignment

    删除.

直接写方法调用foo("bar"), 而不实现方法时, 按Ctrl + 1, 会有Create method ‘methodName(paramType)’, Enter后会在合适的位置创建指定的方法空实现, 并且参数都已经写好, 按Tab键可以切换到返回类型和参数类型上调整, 最后Enter两次完成.

类也可以用相似的方式创建, 先写new Foo("Name"), 然后Ctrl + 1, 选Create class ‘Foo’. 如果是在方法调用中这么写foo(new Bar()), 并且foo方法的参数有具体的类型限制, 那么创建的类会继承参数指定的类型或实现参数的接口类型.

如果现有类里面有, Ctrl + 1会出现Import ‘Xxx’ (xxx.xx), 用于引入现有类.

添加接口方法的默认实现

在类声明上写了implements IFoo后, 按Ctrl + 1会有

  • Add unimplemented methods

    添加未实现的接口方法.

  • Make type ‘Xxx’ abstract

    修改当前类为抽象.

还有抽象类的抽象方法也有类似的提示, 具体可以自行尝试, 套路基本和上面的一样.

结合上段, 使用匿名内部类时, 输入new InterfaceClass(){}之后按Ctrl + 1, 也有Add unimplemented methods, 这在写UI程序时添加事件回调很有用.

移除默认生成的TODO

所有默认生成的方法都会有// TODO Auto-generated method stub 这段, 可以在那一行按Ctrl + 1 -> Remove task tag

不过直接按删除行更直接点, Ctrl + D

对没有错误的代码按Ctrl + 1

这一般是在打算调整代码时用, 十分通用的比如重命名, 可以按Alt + Shift + R更直接点.

在变量声明或赋值上按Ctrl + 1, 下面是一些比较有用的.

  • Convert local variable to field

    把本地变量转换为类变量.

  • Split variable declaration

    和下一项相反, 把变量声明和赋值分离, 在操作外部资源, 用try finally时很有用.

  • Join variable declaration

    将变量赋值和声明合并为一行.

  • Extract to local variable

    把变量扩展为本地变量, 一般是优化时使用, 访问本地变量比类变量快.

在类变量上按Ctrl + 1Create getter and setter for ‘xxx’用于创建类变量的getset方法, 如果是boolean类型会把get变成is.

不过常见的情况是用菜单栏Source -> Generate Getters and Setters, 可以一次性把选择的类变量生成get set方法.

快速打开文件

在多数情况下, 项目中名称重复的文件并不多, 特别是在做jsp开发的时候, 可以使用Ctrl + Shift + R, 输入文件名称就能很快的打开相关的文件.

这段来自和网友的交流.

快速在当前文件内的方法间跳转

上篇介绍的Breadcrumb需要鼠标点才能完成上述目的, 也可以用Ctrl + O打开临时的Outline试图, 可以输入文本过滤, 或者用方向键选择, 最后按Enter转向到指定的方法.

这个在全屏编辑的时候很有用.

Eclipse的使用方法就是经常Ctrl + 1

上面是我遇到的常用的地方, 还有很多地方都可以按Ctrl + 1, 可以自行尝试.

在最近编辑的地方跳转

  • Ctrl + Q

    在修改代码的时候很有用, 快速跳到刚刚修改的地方, 而不撤销代码的修改.

  • Alt + 方向左/方向右

    这个也是在最近的相关文件的行中跳转, 但是我也不是很理解具体的规则, 只是偶尔用用看.

查看JavaAPI Doc

默认鼠标移上去就能看到, 但是需要悬停一会, 如果不想碰鼠标, 可以将光标移动到相关的类或者方法上按F2, 和鼠标悬停弹出的完全一样.

最大化编辑区域

Ctrl + M, 看个人喜好, 我一般是临时用用, Eclipse可以把编辑窗口拖出来分离成左右或上下的, 最大化时仍旧保持左右或上下, 适合对比分析代码, 比如一个客户端, 一个服务端的代码.

关闭文件

Ctrl + W 和几乎所有主流浏览器的关闭窗口快捷键一样, 大量的编辑器也是这个键, 经常用的话就会很自然了.

查找快捷键

上面提到的常用快捷键肯定有遗漏, 如果想自己找相关快捷键可以这样操作.

菜单栏 Window -> Preferences, 在左侧顶部输入Keys, 一般就一个, 可以看到如下界面

Keys

一般Scheme保持Default不变, 在type filter text输入自己想知道的快捷键锁功能相关的单词, 然后在下面出现的快捷键上找, 并尝试.

基本通用的编辑快捷键

这些不限于在Eclipse中使用, 很多地方也可以用这些快捷键, 彻底不了解的可以看, 其他人可无视.

  • Ctrl + 方向左/方向右

    光标向左/右移动一个单词, 中文没有单词可能不适用, 不过在代码中很常用.

  • Shift + 方向左/方向右

    向左/右选择一个字符, 可以重复按选择多个.

  • Shift + 方向上/方向下

    从当前光标位置向上/下选一行, 可以配合左/右, 重复按来调整选择区域.

  • Ctrl + Shift + 方向左/方向右

    向左/右选择一个单词, 可以配合上面提到的细节调整选择区域.

  • Ctrl + 方向上/方向下

    滚动条上下滚动, 光标不移动, 一般是一次滚动一行.

  • Home End

    移动到行首/行末, 配合Shift可以变成选择到行首/行末. 有些编辑器能自动检测行首缩进.

  • Page Down Page Up

    上翻页, 下翻页, 配合Shift可以选择上一页/下一页的内容.

  • Ctrl + X/C/V

    Windows平台最常用的, 剪贴, 复制, 粘贴.

  • Tab

    单独按就是缩进, 根据编辑器的设置, 可能被替换为空格. 配合选中多行, Tab可以调整多行的缩进. 配合Shift可以反缩进, 即减少缩进, 文本向左移动. 这个不是十分通用, 不过多数编程环境都是这样的.

评论

Fork me on GitHub