Eclipse的隐藏功能


97

好的,这可能是一个me脚的问题,但是每个人对这些东西的使用方式都不一样。该IDE最好的省时方法是什么?

汤姆

Answers:


139

不要忘记Ctrl+ Shift+ L,它会显示所有键盘快捷键组合的列表(以防万一您忘记了此处列出的任何快捷键)。


1
对于使用Mac的初学者,对于此处列出的所有命令,请使用COMMAND按钮而不是CTRL。我花时间弄清楚了。它可能会帮助某人。
2011年

119

Ctrl-2东西

似乎没有人提到Ctrl-2 L(分配给新的局部变量)和Ctrl-2 F(分配给新字段),这些都改变了我编写代码的方式。

以前,我输入的内容是(|是光标位置):

Display display = new |

然后我按Ctrl-Space完成构造函数调用。现在我输入:

new Display()|

然后按Ctrl-2 L,结果为:

Display display = new Display()|

这确实加快了速度。(Ctrl-2 F的作用相同,但分配给新字段而不是新变量。)

另一个不错的快捷方式是Ctrl-2 R:在文件中重命名。重命名局部变量之类的文件时,它比重命名重构(Alt-Shift-R)快得多。

实际上,我转到了“密钥自定义”首选项页面,并为Ctrl-2-something分配了各种其他快速修复。例如,我现在按Ctrl-2 J来拆分/联接变量声明,按Ctrl-2 C来将内部类提取到顶层,按Ctrl-2 T来向函数中添加throws声明,等等。修复,请选择您喜欢的修复程序并将其分配给Ctrl-2快捷键。

范本

我的“ npe”模板中的另一个我的最爱,定义为:

if (${arg:localVar} == null)
    throw new ${exception:link(NullPointerException,IllegalArgumentException)}("${arg:localVar} is null");

这使我可以在每个函数的开始处快速添加空参数检查(尤其是那些仅将参数保存到字段中或将其添加到集合中的检查,特别是构造函数),这对于及早发现错误非常有用。

请访问www.tarantsov.com/eclipse/templates/查看更多有用的模板。我不会在这里列出所有它们,因为有很多,而且我经常添加新的。

完成时间

一些代码完成技巧:

  • 另一个答案中提到的骆驼案例支持:键入cTM,获取currentTimeMillis
  • 默认构造函数:在没有默认构造函数的类声明中按Ctrl-Space,首选将是创建一个
  • 重载:在类声明中开始键入可以重载的方法的名称,按Ctrl-空格键,选择一个
  • getter / setter创建:键入“ get”,Ctrl-Space,选择要创建的getter;与“是”和“设定”相同

分配给新字段

这就是我添加字段的方式。

  1. 如果还没有构造函数,请添加一个。(在类声明中的任意位置按Ctrl-空格键,选择第一个建议。)

  2. 添加一个参数(|是光标位置):

    public class MyClass {
        public MyClass(int something|) {
        }
    }
  3. 按Ctrl-1,选择“分配到新字段”。你得到:

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            this.something = something;
        }
    }
  4. 添加空指针检查(如果适用)(请参见上面的“ npe”模板):

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            npe|
            this.something = something;
        }
    }

    按Ctrl-空格键,得到:

    public class MyClass {
        private final Object something;
        public MyClass(Object something) {
            if (something == null)
                throw new NullPointerException("something is null");
            this.something = something;
        }
    }

节省大量时间!


2
CTRL + 2,F和CTRL + 2,L现在震撼了我的世界。谢谢
约书亚·麦金农

14
现在,如果仅您的模板使用了括号...
rsp,2010年

3
@rsp对不起,我讨厌插入不需要的括号。顺便说一句,Eclipse具有代码清除功能,可以使您的代码使用任何样式的花括号(始终或仅在需要时使用),并且可以在保存时应用它。
安德烈塔兰佐夫

81

ctrl-shift-r及其伙伴ctrl-shift-t分别打开资源或类型。资源包括打开的项目中的所有文件(包括非Java文件),类型包括项目中或项目中包含的库中的Java类型。


6
ctrl + shift + r也适合在刚打开项目时打开类型,因为它不需要索引。
boutta

好点子。ctrl-shift-r对于打开引用的jar库中的类型不起作用;它仅适用于项目中的单个文件(资源)。
pkaeding

这当然是Eclipse中最有用的功能,而在Netbeans中却没有很好地实现(即,速度很慢)。
拉胡尔

60

Crtl+ 1是我的最爱。快速解决红色花体的问题。

它也位于编辑菜单->快速修复中。


2
Ctrl +。(句点)将您带到下一个错误(红色/黄色弯曲)。有了这两个,您就处于错误修复模式。:D
st0le 2011年

59

Ctrl+ Shift+ O来组织导入,这将很好地格式化它们,删除不需要的导入,并添加缺少的导入。


6
我注意到有一天,它可以用于组织整个项目或部分项目,而不仅仅是我期望的一个文件。非常有用。
Antti Kissaniemi

我会尝试的,但这是否会将java.util。*导入到您实际需要的导入中?
Thomas Owens

如果需要,它可以更改。*导入-我相信它是可配置的(设置为切换到。*之前要导入的类数量的设置)。
达伦·格雷夫斯

这种小的按键组合是我最初开始使用Eclipse的主要原因之一。太有帮助了!
Rich Adams,2009年

11
@boncey是的,它是可配置的。请注意,从Eclipse3.3开始,您可以要求Eclipse在保存期间自动组织导入(Java>编辑器>保存操作)
Romain Linsolas

48

Ctrl-J启动增量查找。

按Ctrl-J,然后开始输入。使用向上/向下查找所键入内容的上一个/下一个实例。

Ctrl-Shift-J向后搜索。


9
以同样的方式选择一个单词并按ctrl-k或ctrl-shift-k,它将迭代选定的字符串出现
Newtopian 2010年

@Newtopian-ctrl-k是在文件中快速查找引用的最有用的快捷方式之一。
RodeoClown 2010年

37

输入“ syso”,然后按 Ctrl + Space将其展开到System.out.println()。

特雷斯方便。


1
据此:syse将扩展为System.err.println();。
guerda

可以配置任何组合键,请在下面查看我的答案
Ravisha 2010年


29
  • CTRL-SHIFT-g:找到光标下的方法或字段的用法,这对于理解代码是绝对必要的
  • CTRL-F6:在打开的编辑器窗口列表之间导航,如果只键入一次然后放开即可切换回上一个编辑器窗口,那么连续执行此操作是一种来回跳转的好方法
  • CTRL-t:在类或方法上将向您显示类型层次结构,例如对于查找接口方法的实现非常有用

1
我使用5键鼠标并将F6映射到其中一个按钮以进行快速导航。
s_t_e_v_e

多按钮鼠标没有被充分利用。好主意。我只是担心我不会学会这种习惯,如果我不习惯,那么我将无法在机器(工作台式机,工作笔记本电脑,家用台式机等)之间进行切换
Boris Terzic

1
我知道我可以更改它,但我希望默认情况下CTRL-F6是其他内容。我不能用一只手打它。
艾伯特

1
默认情况下,F4还将打开类型层次结构。美观且方便放置在F3旁边,该位置跳转到光标下面的内容的定义。
迈克·丹尼尔斯

5
将Ctrl-F6重新映射到Ctrl-Tab是必不可少的。非常自然,因为就像在浏览器中更改标签一样。
espinchi 2011年

28

单击方法声明中的返回类型将突出显示该方法的所有退出点。

例如:

1: public void foo()
2: {
3:   somecode();
4:    if ( blah ) return;
5:
6:    bar();
7: }

单击void将突出显示第4行的返回值和第7行的close }

更新:它甚至适用于try {} catch块。如果将光标放在catch块中的异常上,则eclipse将突出显示可能引发该异常的可能方法。


现在他告诉我:)有用...尤其是在阅读长而可怕的方法时...
dstibbe

24

代码完成功能支持CamelCase,例如,键入CWAR将显示的结果ClassWithAReallyLongName。开始使用此功能,您将永远不会再键入另一个长类名。

(部分从另一个答案复制,因为我认为答案只有一个提示/提示最适合轮询)


23

Alt-向上箭头将当前选择向上移动一行,Alt-Down箭头将其向下移动。我也一直使用Alt-Shift-上/下箭头。Ctrl-K和Ctrl-Shift-K非常方便,查找当前选择的下一个/上一个(如果未选择任何内容,则查找最后一个Find)。


22

有一个选项可以自动将打开的花括号和分号放在“正确”位置。您必须启用此功能-选择“窗口/首选项”,然后在搜索框中键入“大括号”-应该容易找到(在这台计算机上不会出现日食)。效果:

  • 在行中的任何地方键入分号都会将其放置在此行的末端(例如在word / openoffice中:如果您想将其放在原始位置,则使用Backspace键)
  • 当您正好在另一对括号内时,键入一个打开的花括号将其放置在此行的末尾-如本例所示

(“ |”是光标):

if(i==0|)

现在输入“ {”将导致

if(i==0) {|

20

受Emacs启发的Hippie扩展/单词完成功能,将基于该文件中的其他单词自动完成任何编辑器中的任何单词。Java代码,xml文件中的String文字内部的自动完成功能,无处不在。

Alt + /


2
在德语键盘上,它是Alt + Shift + 7,因为/在7上
。– guerda

您还可以更改Ctrl-Space的行为以包括Alt- /样式的文本扩展
Ewen Cartwright

17

Alt-Shift-R代表重命名,而不是重构。重构是一个更笼统的术语(如本书所定义)。

不过,这是我最喜欢的重构之一。其他包括:

当我不记得(或打扰键入)方法的结果类型时,提取局部变量特别有用。假设您的类中有一个方法JdbcTemplate createJdbcTemplate(),请编写如下代码:

void someQuery() {
    createJdbcTemplate()
}

选择表达式createJdbcTemplate(),单击Alt-Shift-L,输入变量名称,然后按Enter。

void someQuery() {
    JdbcTemplate myTemplate = createJdbcTemplate();
}

5
请注意,Alt-Shift-R重命名执行的是“重构重命名”而不是“文件中的重命名”
Scott Stanchfield,2009年

1
要将方法结果分配给变量,还可以使用快速修复(Ctrl-1),甚至无需选择方法调用。
乔恩

17

CTRL+ D-删除当前行


Eclipse选择了此快捷方式有点令人发疯,但是NetBeans选择了ctrl-e。
Tim Gilbert,

17

当然,Ctrl+ Q转到上一个编辑位置。在被电话,老板或其他人打扰后,此功能非常有用。


15

Ctrl+ Shift+M:将类的静态方法或静态属性引用更改为静态导入。

之前

import X;

...
X.callSomething();

import static X.callSomething;

...
callSomething();

好一个!我必须尝试一下。您知道是否还有其他快捷方式吗?
乔恩2010年

15

Alt+ Shift+ Up箭头会逐步升级选择。Alt+ Shift+ Down相反。



14

没有人提到最好的。单击类或方法名称,然后按Ctrl+T

您将获得一个快速的类型层次结构。对于类名称,您会看到整个类层次结构。对于方法名称,您将获得显示超类和子类的层次结构,该方法的实现与抽象提及或未提及该方法的类有所区别。

当您使用抽象方法声明并且很快想知道在哪里实现时,这是巨大的。


哈,要添加该代码-在处理使用接口实现所有功能的代码库时非常有用!
达伦·格雷夫斯

只需在班级中按F4即可在选项卡中列出层次结构
Ravisha 2010年

13

F3 是我的最爱,打开所选项目的定义。

Ctrl+ Shift+ R具有有趣的功能,您可以在搜索时仅使用类的大写驼峰字母(例如,键入CWAR将显示ClassWithAReallyLongName的结果)。

Alt+ Shift+ W> Package Explorer使浏览大型项目时的工作变得更轻松。


1
在编写代码时,这种驼峰式的技巧也适用。在编辑器中键入CWAR,然后按CTRL-Space,它将扩展为ClassWithAReallyLongName。如果尚不存在,我将其添加为单独的提示。
达伦·格雷夫斯

骆驼案例窍门也适用于按Ctrl + Shift + T对话,我觉得它如此有用,我不naviagte上课任何更多,如果我知道他们的名字。这也是使您的伴侣“哇!您是怎么做到的?”的招数之一。配对时。
欢乐

刚才,我想知道是否有一个快捷方式可以使程序包浏览器启动,而无需单击最小化图标。对此表示
感谢

F3的替代方法:Control +单击类,函数或变量以转到其声明。这也适用于Javadoc @link标记;当您将鼠标悬停在clickable元素上时,它们会带有下划线。
cthulhu 2010年

10

一个非键盘快捷方式是在“团队”->“同步”视图中使用提交集来组织更改,然后再提交。

将更改集设置为默认设置,并且您对文件所做的所有更改都将放入该集中,从而可以轻松查看在处理特定缺陷/功能时所做的更改以及在测试过程中所做的其他更改等。


10

CTRL + SPACE,适用于任何地方。

生成获取器和设置器。

使用字段创建构造函数

提取方法...

重构->重命名

CTRL + O快速概述。CTRL + O + CTRL + O用于继承的大纲。

F4显示类型层次结构

打开“调用层次结构”以显示从何处调用方法。

CTRL + SHIFT + T打开Java类型

Ctrl + Shift + R打开任何资源。

ALT +向左或向右前进或向后浏览文档中的编辑位置(轻松导航)

重写/实现方法,如果您知道要执行很多方法(否则,一次选择CTRL + SPACE更好。

重构->提取接口

重构->拉起

重构->下推

用于组织导入的CTRL + SHIFT + O(在键入诸如Map之类的常规类名称时,按CTRL + SPACE然后选择适当的类将直接为您导入)。

CTRL + SHIFT + F进行格式化(尽管Eclipse的内置格式化程序对于长行代码可能有点死脑筋)

编辑:哦,是的,一些调试:

F5:进入(向我显示详细信息!)

F6:跨步(相信您,继续下一部分...)

F7:走出去(我以为我很在意这种方法,但事实证明我不喜欢,让我离开这里!)

F8:恢复(继续直到到达下一个断点)

CTRL + SHIFT + I:检查一个表达式。CTRL + SHIFT + I + CTRL + SHIFT + I:在检查的表达式上创建监视表达式。

有条件的断点:右键单击一个断点,您可以设置一个条件,该条件会触发该条件来中断程序的执行(可在此处使用Ctrl + Space进行上下文辅助!)

F11-调试最后启动(应用程序)

CTRL + F11-运行上次启动的(应用程序)


10

异常断点

Eclipse使您可以根据发生异常的位置设置断点。
您可以通过“ j!” 访问该选项在调试窗口中的替代文本http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.png图标。

替代文字http://blogs.bytecode.com.au/glen/2007/04/06/images/2007/AddExceptionWindow.png

官方帮助主题“ 添加Java异常断点 ”对此有更多说明。

  • Uncaught Exception选项是在未捕获的位置抛出与断点相同类型的异常时挂起执行。
  • 当在捕获的位置抛出与断点相同类型的异常时,“捕获的异常”选项将暂停执行。
  • 不要忘记此Exception的子类上Exception Breakpoint Suspend
    在遇到异常类型的子类时暂停执行。
    例如,如果将的异常断点RuntimeException配置为在子类上挂起,则它也将由触发NullPointerException

替代文字http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/reference/breakpoints/images/ref-breakpoint_suspendsubclass.PNG


9

Ctrl+ Alt+ H一个方法来获得调用层次吧。快速查看从何处调用它的方法。



8

Alt+ Shift+ R重构和重新命名。


1
Alt + Shift + R是Refactor-> Rename。Eclipse中还有其他几个重构快捷方式。
MetroidFan2002

7

这是我针对Eclipse 3最有用的键盘快捷键的集合:

Eclipse 3 Favorite Keyboard Shortcuts. 
by -=MaGGuS=-

Navigate:

   Ctrl + Shift + L  Shows useful keyboard shortcuts in popup window 
   Ctrl + H  Search.
   Ctrl + K  Goes to next search match in a single file. Shift + Ctrl + K  goes to previous match.
   F3 - Goes to declaration of something. Same as Ctrl + Click.
   Ctrl + Shift + G - Use this on a method name or variable. It will search for references in the code (all the code) to that item.
   Ctrl + O  Shows outline view of the current class or interface.
   Ctrl + T  Shows class hierarchy of the current class or interface. F4  shows the same in separate tab.
   Ctrl + Shift + T - Open Type. Search for any type globally in the workspace.
   Ctrl + Shift + R  Open Resource. Search for any file inside workspace.
   Ctrl + J  Incremental search. Similar to the search in firefox. It shows you results as you type. Shift + Ctrl +J - Reverse incremental search.
   Ctrl + Q  Goes to the last edit location.
   Ctrl + Left|Right  Go Back/Forward in history.
   Ctrl + L  Go to line number.
   Ctrl + E  This will give you a list of all the source code windows that are currently open. You can arrow up or down on the items to go to a tab.
   Ctrl +PgUp|PgDown  Cycles through editor tabs.
   Ctrl + Shift + Up|Down - Bounces you up and down through the methods in the source code.
   Ctrl + F7  Switches between panes (views).
   Ctrl + ,|.  Go to the previous/next error. Great in combination with Ctrl + 1.
   Ctrl + 1 on an error  Brings up suggestions for fixing the error. The suggestions can be clicked.
   Ctrl + F4  Close one source window.

Edit:

   Ctrl + Space  Auto-completion.
   Ctrl + /  Toggle comment selected lines.
   Ctrl + Shift + /|\  Block comment/uncomment selected lines.
   Ctrl + Shift + F  Quickly formats your java code based on your preferences set up under Window –> Preferences.
   Ctrl + I  Correct indentations.
   Alt + Up|Down  move the highlighted code up/down one line. If nothing is selected, selects the current line.
   Ctrl + D  Delete row.
   Alt + Shift + Up|Down|Left|Right  select increasing semantic units.
   Ctrl + Shift + O  Organize Imports.
   Alt + Shift + S  Brings up Source menu.
o   Shift + Alt + S, R  Generate getter/setter.
o   Shift + Alt + S, O  Generate constructor using fields.
o   Shift + Alt + S, C  Generate constructor from superclass.
   Alt + Shift + T  Brings up Refactor menu.
   Alt + Shift + J  Insert javadoc comment.
   F2  Display javadoc popup for current item. Shift + F2  Display javadoc in external browser.

Run/Debug:

   F11 / Ctrl + F11  Execute/debug.
   Ctrl + Shift +B  Toggle breakpoint.
   When paused: F5  Step into, F6  Step over, F7  Step out, F8  Resume.
   Ctrl + F2  Terminate.

EOF

7

不是那么隐藏,而是IMO最好的把戏。

假定为默认设置(并且您尚未添加新的代码段)

突出显示(或选择)文本(字符串或变量)...按Ctrl + Space。点击结束+输入。触发“ sysout”代码段,该代码段将选择内容包装为参数。

例如。

 "hello world!"

becomes
System.out.println("hello world!");

我非常喜欢它,以至于我在手动调试过程中为Android的Toast和Log.i()HUGE节省了时间。


哇,我怎么不知道呢?谢谢!
MatrixFrog

嗯,当我点击“结束”时,它只是到达所选字符串的末尾,而不是建议列表的末尾。
塞格2010年

也许您应该在结束之前按另外的“向下”键... :(
st0le 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.