【问题标题】:Hidden features of Eclipse [closed]Eclipse 的隐藏功能 [关闭]
【发布时间】:2010-09-08 11:12:06
【问题描述】:

好吧,这可能是一个蹩脚的问题,但每个人使用这些东西的方式都不同。这个 IDE 有哪些最好的节省时间的方法。

汤姆

【问题讨论】:

    标签: java eclipse ide


    【解决方案1】:

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

    【讨论】:

    • 对于使用mac的初学者,这里列出的所有命令都使用COMMAND按钮而不是CTRL。我花了一些时间来解决这个问题。它可能对某人有所帮助。
    【解决方案2】:

    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) 快得多。

    实际上,我去了 Keys 自定义首选项页面,并为 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-Space,选择一个
    • getter/setter创建:输入“get”,Ctrl-Space,选择一个getter来创建;与“is”和“set”相同

    分配给新字段

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

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

    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;
          }
      }
      

    非常节省时间!

    【讨论】:

    • CTRL+2,F 和 CTRL+2,L 现在震撼我的世界。谢谢
    • 现在如果您的模板使用大括号...
    • @rsp 抱歉,我讨厌插入不需要的大括号。顺便说一句,Eclipse 具有代码清理功能,可以使您的代码使用任何样式的大括号(始终或仅在需要时),并且可以在保存时应用它。
    【解决方案3】:

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

    【讨论】:

    • ctrl+shift+r 也适用于刚打开项目时打开类型,因为它不需要索引。
    • 好点。但是, ctrl-shift-r 不适用于打开引用的 jar 库中的类型;它仅适用于您项目中的单个文件(资源)。
    • 这无疑是 Eclipse 中最有用的功能,但在 Netbeans 中实现得不是很好(即速度很慢)。
    【解决方案4】:

    Crtl+1 是我的最爱。红色曲线的快速修复。

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

    【讨论】:

    • Ctrl+。 (句号)带你到下一个错误(红色/黄色波浪线)......有了这两个,你就处于错误修复模式。 :D
    【解决方案5】:

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

    【讨论】:

    • 前几天我注意到它可以用来组织整个项目或其中的一部分,而不是像我预期的那样只组织一个文件。非常有用。
    • 我会试试这个,但这是否会将 import java.util.* 更改为您实际需要的导入?
    • 它可以根据需要更改 .* 导入 - 我相信它是可配置的(在切换到 .* 之前要导入多少类的设置)。
    • 这个小组合键是我最初开始使用 Eclipse 的主要原因之一。太有帮助了!
    • @boncey 是的,它是可配置的。请注意,从 Eclipse3.3 开始,您可以要求 Eclipse 在保存期间自动组织导入(Java > Editor > Save actions)
    【解决方案6】:

    Ctrl-J 开始增量查找。

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

    Ctrl-Shift-J 向后搜索。

    【讨论】:

    • 同样选择一个单词并按 ctrl-k 或 ctrl-shift-k 它将遍历选定的字符串出现
    • @Newtopian - ctrl-k 是在文件中快速查找引用的最有用的快捷键之一。
    【解决方案7】:

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

    很方便。

    【讨论】:

    • 据此:syse会扩展为System.err.println();
    • 任何组合键都可以配置,看下面我的回答
    【解决方案8】:

    CTRL+3 显示任何菜单命令的预先输入列表。

    【讨论】:

    • +1 我爱我一些控制 3!
    【解决方案9】:
    • CTRL-SHIFT-g : 查找光标下的方法或字段的用法,对于理解代码是绝对必要的
    • CTRL-F6 :在打开的编辑器窗口列表之间导航,如果您只键入一次然后松开,您将切换回上一个编辑器窗口,连续执行此操作是来回跳转的好方法
    • CTRL-t : 在类或方法上将显示类型层次结构,例如对于查找接口方法的实现非常有用

    【讨论】:

    • 我使用 5 键鼠标并将 F6 映射到其中一个按钮以进行快速导航。
    • 这种方式没有充分利用多键鼠标。这是个好主意。我只是担心我不会养成这个习惯,如果我这样做了,我将无法在机器(工作台式机、工作笔记本电脑、家用台式机等)之间切换
    • 我知道我可以改变它,但我希望 CTRL-F6 默认是别的东西。我一只手打不过。
    • F4 默认也会打开类型层次结构。很好,方便地放置在 F3 旁边,它会跳转到光标下任何内容的定义。
    • 将 Ctrl-F6 重新映射到 Ctrl-Tab 是必不可少的。理解起来很自然,因为这就像在浏览器中更改标签一样。
    【解决方案10】:

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

    例如:

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

    点击 void 将突出显示第 4 行的 return 和第 7 行的关闭 }

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

    【讨论】:

    • 现在他告诉我 :) 有用...尤其是在阅读冗长的糟糕方法时...
    【解决方案11】:

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

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

    【讨论】:

      【解决方案12】:

      Alt-Up Arrow 将当前选择向上移动一行,Alt-Down Arrow 将其向下移动。我也一直使用 Alt-Shift-Up/Down Arrow。 Ctrl-K 和 Ctrl-Shift-K 非常方便,查找当前选择的下一个/上一个出现(或最后一个 Find,如果没有选择)。

      【讨论】:

        【解决方案13】:

        可以选择将左大括号和分号自动放置在“正确”位置。您必须启用此功能 - 选择 Window/Preferences 并在搜索框中键入“brace” - 应该很容易找到(这台计算机上没有 eclipse)。效果:

        • 在该行的任意位置键入分号会将其放置在该行的末尾(如 word/openoffice: Backspace,如果您想将它放在原来的位置)
        • 当您刚好位于另一对大括号内时,键入一个左大括号会将其放在该行的末尾 - 如此示例中所示

        (“|”是光标):

        if(i==0|)
        

        现在输入“{”将导致

        if(i==0) {|
        

        【讨论】:

          【解决方案14】:

          Hippie expand/Word Complete,受 Emacs 启发的 afaik:将根据该文件中的其他单词自动完成任何编辑器中的任何单词。在 Java 代码、xml 文件中,随处可见的字符串文字内部自动完成。

          Alt + /

          【讨论】:

          • 在德语键盘上,它是 Alt + Shift + 7,因为 / 在 7 上。
          • 您还可以更改 Ctrl-Space 的行为以包含 Alt-/ 样式的文本扩展
          【解决方案15】:

          Alt-Shift-R 代表 rename,而不是重构。重构是一个more general term(由the book定义)。

          尽管如此,它是我最喜欢的重构之一。其他包括:

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

          void someQuery() {
              createJdbcTemplate()
          }
          

          选择表达式createJdbcTemplate(),点击Alt-Shift-L,输入变量名并回车。

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

          【讨论】:

          • 请注意,Alt-Shift-R 重命名是“重构重命名”而不是“文件重命名”
          • 要将方法结果分配给变量,您也可以使用快速修复 (Ctrl-1),甚至无需选择方法调用。
          【解决方案16】:

          CTRL + D - 删除当前行

          【讨论】:

          • 虽然 Eclipse 选择了这个快捷方式,但 NetBeans 选择了 ctrl-e,这有点让人抓狂。
          【解决方案17】:

          当然,Ctrl+Q 可以转到最后一个编辑位置。 在被电话、老板或其他人打断后非常有用。

          【讨论】:

            【解决方案18】:

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

            之前

            import X;
            
            ...
            X.callSomething();
            

            之后

            import static X.callSomething;
            
            ...
            callSomething();
            

            【讨论】:

            • 不错的一个!我得试试这个。你知道是否也有相反的捷径吗?
            【解决方案19】:

            Alt+Shift+Up 箭头进行升级选择。 Alt+Shift+Down 则相反。

            【讨论】:

              【解决方案20】:

              Alt+UpAlt+Down 移动线条

              【讨论】:

              • 如果选中,也可以移动多行,并即时修复缩进。
              【解决方案21】:

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

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

              当您在一个抽象方法声明中并很快想看看它在哪里实现时,这是巨大的。

              【讨论】:

              • 哈,本来打算添加一个 - 在处理使用接口的代码库时非常有用!
              • 只需在类中按 F4 即可在选项卡中列出层次结构
              【解决方案22】:

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

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

              Alt+Shift+W > 包资源管理器让浏览大型项目时更轻松。

              【讨论】:

              • 骆驼案例技巧在编写代码时也适用。在编辑器中键入 CWAR,然后按 CTRL-Space,它将扩展为 ClassWithAReallyLongName。如果它还没有,我将把它作为一个单独的提示添加。
              • Camel Case 技巧也适用于 Ctrl+Shift+T 对话框,而且我发现它如此很有用,如果我知道它们,我就不会再导航到类了名字。这也是让你的伴侣“哇!你是怎么做到的?”的技巧之一。配对时。
              • 刚才我想知道是否有一个快捷方式可以打开包资源管理器而无需单击最小化图标。感谢这个:-)
              • F3 的替代方法:Control + 单击类、函数或变量以转到其声明。这也适用于 Javadoc @link 标签;当您将光标悬停在可点击元素上时,它会带有下划线。
              【解决方案23】:

              一个非键盘快捷键技巧是在您的团队中使用提交集->同步视图在提交之前组织您的更改。

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

              【讨论】:

                【解决方案24】:

                CTRL+SPACE,任何地方,任何地方。

                生成 getter 和 setter。

                使用字段创建构造函数

                提取方法...

                重构->重命名

                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+空格!)

                F11 - 调试上次启动(应用程序)

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

                【讨论】:

                  【解决方案25】:

                  Breakpoint on Exception

                  Eclipse 允许您根据发生异常的位置设置断点。
                  您可以通过调试窗口中的 "j!" alt text http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/images/org.eclipse.jdt.debug.ui/elcl16/exc_catch.png 图标访问该选项。

                  alt text http://blogs.bytecode.com.au/glen/2007/04/06/images/2007/AddExceptionWindow.png

                  官方帮助主题“Add Java Exception Breakpoint ”对此有更多说明。

                  • Uncaught Exception 选项用于在未捕获位置抛出与断点相同类型的异常时暂停执行。
                  • Caught Exception 选项用于在捕获位置抛出与断点相同类型的异常时暂停执行。
                  • 别忘了Exception Breakpoint Suspend on Subclass of this Exception
                    当遇到异常类型的子类时暂停执行。
                    例如,如果RuntimeException 的异常断点配置为在子类上挂起,它也会被NullPointerException 触发

                  alt text http://help.eclipse.org/stable/topic/org.eclipse.jdt.doc.user/reference/breakpoints/images/ref-breakpoint_suspendsubclass.PNG

                  【讨论】:

                    【解决方案26】:

                    Ctrl+Alt+H 在方法上获取调用层次结构。快速查看调用位置的方法。

                    【讨论】:

                      【解决方案27】:

                      Ctrl+Alt+UPCtrl+Alt+DOWN复制行

                      【讨论】:

                      • 除非它被您的视频驱动程序拦截,否则您最终会得到一个颠倒的屏幕。
                      • yip,该死的联想工作站 :)
                      【解决方案28】:

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

                      【讨论】:

                      • Alt+Shift+R 是重构->重命名。 Eclipse 中还有其他几个重构快捷方式。
                      【解决方案29】:

                      这是我收集的 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
                      

                      【讨论】:

                        【解决方案30】:

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

                        假设默认设置(并且您还没有添加新的 sn-ps)

                        突出显示(或选择)文本(字符串或变量)...按 Ctrl+空格。点击结束+输入。 “sysout” sn-p 被触发,它将选择作为其参数包装。

                        例如。

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

                        我非常喜欢它,因此我为 Android 的 Toast 和 Log.i() 实现了类似的 sn-p 手动调试期间节省大量时间....

                        【讨论】:

                        • 哇,我怎么不知道呢?谢谢!
                        • 嗯,当我点击 End 时,它只是转到所选字符串的末尾,而不是到建议列表的末尾。
                        • 也许你应该在结束之前按一个额外的“向下”键...... :(
                        猜你喜欢
                        • 2010-09-08
                        • 2011-02-03
                        • 2010-10-25
                        • 2011-06-25
                        • 2010-12-11
                        • 1970-01-01
                        • 2012-08-24
                        • 2011-11-07
                        • 2014-08-13
                        相关资源
                        最近更新 更多