zoukankan      html  css  js  c++  java
  • Intellij IDEA和EclipsE之间的的全面对比

     

    两个IDE之中我最常用的快捷键:

     

    描述

    Eclipse

    IntelliJ

    代码补全

    Ctrl+space

    ctrl+space

    打开类或者接口

    (两个IDE都支持使用“驼峰字符”前缀的方式来过滤查找列表,进而轻松完成搜索;比如:可以使用“PoDI”来检索PodcastDaoImpl类)

     Ctrl+Shift +T

    Ctrl+N

    快速打开文件/资源

    Ctrl+Shift+R

    Shift+F6

    打开声明

    F3

    Ctrl+B

    查看Javadoc/详情

    鼠标滑过(F2聚焦)

    Ctrl+Q

    快速修复

    Alt+1

    Alt+Enter

    导入所有须要的包

    Ctrl+Shift+O

    Ctrl+Alt+O

    保存文件/保存所有文件

    Ctrl+S/Ctrl+Shift+S

    自动保存

    当前文件快速定位弹出框(成员,方法)

    Ctrl+O

    Ctrl+F12

    源码(生成getter和setter,构造器等)

    Alt+Up /Alt+Down

    Alt+Insert

    当前语法补全

    if,do-while,try-catch,return(方法调用)等正确的语法构造(如:添加括号)

      Ctrl+Shift+Enter

    抽取常量

    Ctrl+1->抽取常亮

    Ctrl+Alt+C

    抽取变量

    Ctrl+1->抽取变量

    Ctrl+Alt+V

    增加、删除以及移动数行代码

    在当前插入符添加一行

    Shift+Enter

    Shift+Enter

    复制一行或代码段

    Ctrl+Alt+Up/Down

    Ctrl+D

    删除一行代码

    Ctrl+D

    Ctrl+Y

    选中代码向上或者向下移动

    Alt+Up/Down

    Shift+Alt+Up/Down

    查找/搜索

    查找类/变量在工作区或工程中使用

    Ctrl+Shift+G

    Alt+F7

    在工程或者工作区中查找文本

    Ctrl+H (选择文件搜索)

    Ctrl+Shift+F

    导航

    回退(撤消最后导航操作)

    Alt+Left

    Ctrl+Alt+Left

    标签/编辑之间的导航

    Ctrl + Page Down / Up

    Alt + Left/Alt + Right

    跳转某一行

    Ctrl+L

    Ctrl+G

    导航到最近的文件

    Ctrl + E

    Ctrl + E

    在编辑器之间快速切换方法

     

    Alt + Up / Down

    调试

    运行一行

    F6

    F8

    进入下一次计算

    F5

    F7

    运行到下一个断点

    F7

    Shift+F8

    回复运行

    F8

    F9

     

    编辑器

    很多时候我们在编辑一个文件,同时还需要编辑其他的文件。假如FF类是一个经常编辑的类,同时又需要对同一个包中的其他类进行编辑—通过链接编辑器的功能,可以迅速在同包的类之间进行切换。这个功能为我们提供了什么样的便利?每当编辑了一个文件,它会立即显示其所在包浏览器视图/项目视图中的位置。如果使用展开式的包视图,它会按功能对类划分并显示,而不使用分层(dao层, service层等)的方式来展示类。这也是我强烈推荐的展示方式,因为真的很方便。

    Eclipse

    在工程浏览视图或者包浏览视图可以看到并使用链接编辑器(Link to Editor)的按钮。

    如果不想使用该功能,依然可以使用Alt+Shift+W快捷键来查看包视图或工程视图并设置其显示位置。

     

     IntelliJ

    在工程视图或者包视图中选择设置,然后勾选根据源码自动滚动(Autoscroll From Source)功能;

    如果不想使用该功能,依然可以使用快捷键Alt+F1来导航并设置显示的位置;

     

    自动完成

     

    自动完成使得IDE比notepad更加优秀,在这个领域能感知上下文的IDEA有了质的飞跃。例如,我们开始如下一行代码:

     
    findElement(By.id("error"), vim
    

    现在我们想要查找以vim开头的选项有哪些。

    IDEA怎么做的呢?无需等待任何的按键,它马上就能理解findElement需要一个Conditaion类的示例作为第二个参数,而在Condition类中有一个静态变量名叫visible。IDEA会直接建议这个唯一的有效选项。

    然而,Eclipse会怎么做呢?唉,它不能理解上下文,它不知道光标所在处就是assertElement方法的第二个参数。因此当你按下“神圣”的Ctrl+Space时,Eclipse只会简单的显示全局中以vi字母开头的一切。

    在一个美丽的弹出框中我看到了很多漂亮的高亮的格式规范的无用的信息.:(

    内存占用

     

    说起内存,IDEA似乎比Eclipse更耗费内存。我没有这方面的代表性基准,但是我知道现在我家里的16 GB RAM对于开发大型项目来说太小了,不过一直没换。不过这不碍事啊, 从第三次科技革命以来, 人类就一直在做着以空间换时间, 以存储成本换效率的损事, just kiddin, 这是趋势, 以后的app和ide都会变得越来越大(但并不代表越来越慢) 

    我用mongodb的时候也有这种感受, 就是越先进的IDE和功能越强大的app都是以内存为代价的...

    ---------------------------------------------------------------------------------

    IntelliJ的魅力之处

    默认设置了许多的功能

    IntelliJ本身就自带了众多的功能(如:GitHub的集成)。当然,在Eclipse你也可以通过选择不同版本的插件来获取到足够的功能,只是需要自己来配置这些插件。

    使用鼠标滚轮改变字体大小

    在IntelliJ中,可以使用鼠标滚轮来改变字体大小(我在浏览器中经常使用该功能)。但是这个功能需要手动激活。

    1. 打开IDE的设置(Ctrl+Shift+S或点击 文件菜单>Setting)
    2. 在编辑器页面(在搜索框中输入“Editor”),确保Change font size (Zoom) with Ctrl+MouseWheel这个选项被选中。

     

    在IDE中直接启动命令行终端

    使用快捷键: Alt + F12

    灵活易用的模板

    输入p,然后使用快捷键Ctrl+J,就可以获取以下选项:

    • psf – public static final
    • psfi – public static final int
    • psfs – public static final String
    • psvm – main method declaration

    对JavaScript、HTML5的强力支持

    商业版的IntelliJ应该包含了对 HTML5、CSS3、SASS、LESS、JavaScript、CoffeeScript、Node.js、ActionScript以及其他语言的代码辅助功能。我将尽快地确认这些内容。

    相比Eclipse IntelliJ的不足之处

    无法最大化控制台

    在Eclipse中,可以使用Ctrl+M快捷键或者双击标签来最大化当前的控制台。但是在IntelliJ中并没有类似的方式来。

    鼠标悬停显示Javadoc

    当然,在IntelliJ中可以使用Ctrl+Q快捷键来获取上述的功能。但当鼠标悬停代码就能看到部分Javadoc的功能在Eclipse中显得是那么的友好。

     

    总结一下

    有许多争论的话题是讨论它们哪个有更多的插件、快捷键等等。它们之间有太多的不同而很难决定什么才是最重要的。因此,人们都表示两个IDE在功能性上都差不多,选择某一个则是个人喜好问题了。

    但是随着时代的发展, intellij idea一定会比eclipse好的, 先不说eclipse的开发团队已经严重滞后了, IDEA本身就有着拜托一切历史包袱的优势, 这也是为什么Google选择在IDEA上二次开发了Android studio等环境, 我也慢慢的转向jetbrain系列的生态环境中, 在这个idea的市场已经超越eclipse的大环境下, 大家还是勇敢的尝试新开化工具吧

    欢迎关注我的主页:

    https://jinhengyu.github.io/

  • 相关阅读:
    前端开发面试题总结之——HTML
    HashMap的那些事
    抽象同步队列AQS(中)—— AQS的重点方法解析
    抽象同步队列AQS(上)—— 宏观上理解AQS
    synchronized原理详解
    volatile原理详解
    JMM模型详解
    计算机运行时内存&处理器CPU初步认知
    mysql-索引详解
    mysql-事务隔离机制&mvcc原理
  • 原文地址:https://www.cnblogs.com/jinhengyu/p/10258082.html
Copyright © 2011-2022 走看看