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中,可以使用鼠标滚轮来改变字体大小(我在浏览器中经常使用该功能)。但是这个功能需要手动激活。
- 打开IDE的设置(Ctrl+Shift+S或点击 文件菜单>Setting)
- 在编辑器页面(在搜索框中输入“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的大环境下, 大家还是勇敢的尝试新开化工具吧
欢迎关注我的主页:
Intellij IDEA和EclipsE之间的的全面对比的更多相关文章
- IntelliJ IDEA像Eclipse一样打开多个项目(转)
转自: 海涛zht666 IntelliJ IDEA像Eclipse一样打开多个项目 我们做项目实际中经常会遇到这样的情况,创建一个common项目(Maven项目)作为公用项目,common中有 ...
- Intellij IDEA 导入Eclipse或MyEclipse的Web项目(旧版 转载)
Intellij IDEA 导入Eclipse或MyEclipse的Web项目 博客分类: Intellig IDEA Intellij IDEAEclipseWeb Intellij IDEA 导 ...
- IntelliJ 中类似于Eclipse ctrl+q的是Ctrl+Shift+Backspace
IntelliJ 中类似于Eclipse ctrl+q的是Ctrl+Shift+Backspace 回到刚刚编辑的地方: ctrl+alt+Left 是回到刚刚浏览的地方,不一定是编辑的地方,可能已经 ...
- IntelliJ 中类似于Eclipse ctrl+o的是ctrl+F12
IntelliJ 中类似于Eclipse ctrl+o的是ctrl+F12 学习了:https://blog.csdn.net/sjzylc/article/details/47979815
- (图文教程)IntelliJ IDEA 导入Eclipse/MyEclipse 项目 配置详解+快捷键分享
(图文教程)IntelliJ IDEA 导入Eclipse/MyEclipse 项目 配置详解+快捷键分享 IntelliJ IDEA 使用教程.快捷键配置. 该教程针对原始jar包依赖的工程.mav ...
- Intellij IDEA 导入eclipse 项目
HoJe一个会rep的程序猿 . 感谢2019 时间匆匆,一转眼2019要跟我们说再见了.我们怀有太多的期望就难免遭遇失望和挫折.我们遇到了困难,往往不是想办法去解决,而是抱怨这个命运的不公.如果生活 ...
- IntelliJ IDEA像Eclipse一样打开多个项目
原文:http://blog.csdn.net/zht666/article/details/47831893 我们做项目实际中经常会遇到这样的情况,创建一个common项目(Maven项目)作为公用 ...
- 【转】 IntelliJ IDEA像Eclipse一样打开多个项目
http://blog.csdn.net/zht666/article/details/47831893 我们做项目实际中经常会遇到这样的情况,创建一个common项目(Maven项目)作为公用项目, ...
- 为何IntelliJ IDEA比Eclipse更好
阅读本文大概需要 4.2 分钟. 本文为译文,翻译:彭博 https://www.oschina.net/news/26929 争论 有一些没有唯一正确答案的“永恒”的问题,例如,更好的是:Windo ...
随机推荐
- 如何使用 awk 的 ‘next’ 命令
导读 在 awk 系列文章中,我们来看一下next 命令 ,它告诉 awk 跳过你所提供的所有剩下的模式和表达式,直接处理下一个输入行.next 命令帮助你阻止运行命令执行过程中多余的步骤. 要明白它 ...
- 图解aclocal、autoconf、automake、autoheader、configure
http://www.laruence.com/2008/11/11/606.html 本文地址: http://www.laruence.com/2008/11/11/606.html 转载文章 原 ...
- JAVA基础(9)——容器(3)——并发容器
转载:http://blog.csdn.net/weitry/article/details/52964509 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击激活配置进入到运行模式直接死机或蓝屏怎么办
下载我提供的TCRtime.sys文件,替换掉TwinCAT/Driver目录下的原有文件(原有文件要小一点,这个是159KB的) 如果你同时也安装了TwinCAT3,请不要替换这个,他是398KB的 ...
- 探寻C++最快的读取文件的方案
https://www.byvoid.com/blog/fast-readfile/ 在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式.相信几乎所有的C++学习者都在cin ...
- Python将一个大文件按段落分隔为多个小文件的简单方法
今天帮同学处理一点语料. 语料文件有点大,而且是以连续两个换行符作为段落标志,他想把它按段落分隔成多个小文件.即每3个段落组成一个新文件.因为曾经没有遇到过类似的操作,在网上找了一些类似的方法,看起来 ...
- linux修改密码出现Authentication token manipulation error的解决办法
转自 :http://blog.163.com/junwu_lb/blog/static/1916798920120103647199/ Authentication token manipulati ...
- java基础讲解06-----字符串
1. package test; public class chb01 { public static void main(String[] ggs) { /** ...
- poj_2773
题目的愿意非常easy.给你一个n,求在升序排列的情况下,第k个与之相互素的数. 解法:首先我们要知道gcd(b×t+a,b)=gcd(a.b),那么接下来就非常easy了.全部与之互素的数都是以ph ...
- js 时间对比
https://www.cnblogs.com/xiangsj/p/7977325.html http://www.jb51.net/article/45560.htm isOverdue (time ...