仰不愧天,俯不愧人,内不愧心。关注公众号【BAT的乌托邦】,有Spring技术栈、MyBatis、JVM、中间件等小而美的原创专栏供以免费学习。分享、成长,拒绝浅尝辄止。本文已被 https://www.yourbatman.cn 收录。

✍前言

你好,我是YourBatman。

2020庚子年是载入史册的一年,但对Jetbrain公司来说却是它的20周年。上个较大版本的发布,要追溯到8月份了:



时隔近4个月,北京时间2020-12-01深夜,IntelliJ IDEA再迎更新,这是2020年的第个里程碑版本。踩着2020年的尾巴,Jetbrain团队完成了他们的“KPI”:交付了第三次里程碑版本。

最近几个版本的介绍这里可电梯直达:

✍正文

我们知道,Jetbrain公司它简直就是个IDE工厂,产出过各种语言使用IDE,并且每个IDEA都做得都非常优秀,傲视群雄。本次除了发布最受瞩目的IntelliJ IDEA外,其它兄弟也相继'out'了(红红绿绿的简直亮瞎眼):







说明:Go语言用的IDE Goland本次发布的是Release Candidate而非正式Release,还得过个几天(不会扣Goland团队年终奖吧)

这么多兄弟能基于在几乎同一时间发布,有充分的理由相信它们使用的是同一基座,所以做到了一致的体验、一致的稳定、一致的优秀、一致的吃吃吃内存。IntelliJ IDEA作为最为出名的代表作,可以说是我们Java程序员的饭碗呀,接下来就来看看我们的新碗带来了哪些好玩的东西呢。

what’s new(新特性)

此版本在调试器中添加了交互式提示和嵌入式监视,改进了对Java 15的支持,并引入了对Git暂存的支持以及其它各种功能。然后呢,有些界面上也焕然一新了,做了重新设计。

按照惯例,先来张启动图新老对比:





设计师领盒饭去吧,我觉得这个启动图很难再有进步了。

1、全新的欢迎屏幕



老的在这:



这个不得不夸:进步了,更大气更方便了。此次IntelliJ IDEA欢迎屏幕经过重新设计,初始向导已替换为包含四个标签快速进入:

  • 项目管理项目
  • 自定义设置IDE
  • 插件安装
  • 了解IntelliJ IDEA的访问帮助和学习资源
    • 如果你是IDEA的初级使用者,或者想再学习一次IDEA,从这个页面点进去将会非常适合你

2、IDE主题已与操作系统设置同步

IntelliJ IDEA现在可以将其主题与您的OS主题同步。



勾选后,如果你的操作系统选用暗色主题,IDEA也会自动切换主题,保护双眼。

注意,有一点官方并未做出说明:此功能windows 7不支持,此功能windows 7不支持,此功能windows 7不支持,亲测截图为证:



可能你会说:为毛现在还有人用win 7?呃呃呃,我刚从XP升级上来......

3、一键进入阅读器模式

这个功能很赞,对阅读源码很有帮助。

默认情况在Reader模式下打开只读文件(也可以是本项目的只读文件)和来自外部库(Jar内)的文件,注释就像被格式化过一样,方便阅读。如下图表示你当前正在以阅读模式看此文件:

开启阅读模式的效果:像看web页面



关闭阅读模式的效果:像看html源代码



简单的说:阅读器模式就是帮你翻译了一下javadoc,更适合源码阅读。默认情况下是关闭的,建议你全局开启(或者在页面右上角单独点击开启亦可):

3、LightEdit模式优化

还记得LightEdit模式吗?它是在2020.1版本(2020-04发布)引进的新功能:



本次改进:现在要从命令行以LightEdit模式打开文件,只需idea -e xxx命令即可(若-e后不写文件名,那就打开上次刚打开的文件)。

我个人觉得此功能鸡肋,至少对我来说很鸡肋,只玩过没实际用过,毕竟只打开一个文件的话我用普通编辑器更轻量些不香吗?

4、改进的拼写检查

一句话:就是帮你检查你的单词是不是拼写错了,并且给出建议(可自定义字典):



看起来挺智能,实际然并卵,毕竟咱们方法名起个都费劲,还用应为写注释?拼写检查可作用在doc注释上、字符串上。但不可检查变量名、方法名上~

对于大多数程序员来说(如果你不做开源项目,个别拼错无所谓),建议关闭拼写检查,毕竟它还是耗性能的,特别是windows用户(手动o(╥﹏╥)o)。

5、更强的Serch Everywhere

这个搜索更加强大了:新增了对git的支持,可以根据commit id等git相关元素进行搜索啦。

老的:



新的:增加了Git Refs选项(暂忽略Calc)



现在如果你只知道一个commit id就可以拿去搜啦~

6、浏览项目新增预览模式

提效神器,如下图(Project视窗):



点击(Project视窗)右上角设置图标,把图中红框部门勾选上就开启预览模式浏览项目,就开启了预览模式。

什么叫预览模式:之前打开文件你需要双击,现在光标定位在哪个文件就显示哪个其对应内容,所以就支持键盘操作啦(上下键、tab键),不用依赖鼠标真的十分方便,提效神器啊。

7、在IDEA内部直接更新JDK

在之前版本介绍中知道现在可以在IDEA内部直接下载JDK(非Oracle官方的),这次更狠:可以在IDEA内直接升级JDK了(若有更新的话)。

我个人觉得此功能鸡肋,毕竟JDK谁会轻易去换呢。毕竟你发任你发,我用Java 8。

8、拖拽标签页

有些时候我们希望在处理一个项目时多打开几个选项卡(毕竟我们外接屏幕比较大嘛),有点分屏的意思。以前处理起来比较困难:先选中标签页右键,然后选择合适的split方式。现在很简单啦:可以通过拖放文件选项卡来水平或垂直地分割编辑器



如果想分屏的文件不在顶部选项卡里,IDEA也为你考虑到了,最近文件里也给你提供了入口:

8、IDEA设为某些文件默认打开程序

感觉IDEA的侵占欲越来越强了啊,它不仅仅只想做个开发用的IDE,我们的文本编辑工作它都想接管。这不你可以设置某些类型的文件默认打开程序为IDEA了:

9、调试器 - 交互式提示

当你在debug模式下运行时,可以直接点击变量后面的“小按钮”,弹出交互式窗口,从而可直接修改其值(做小家),大大方便了调试:



老版这里是木有可点按钮的:



若想要修改变量的值,得到底部的专门的窗口来,并且还得右键,选择set value才能达到目的,路径还是蛮长的:

10、调试器 - 内联watches

这也是调试的时候经常用到的一个功能:watch观察一个表达式的值。这在新版本里操作方便到令人发指:



点击这个按钮后就把i加入观察了,直接在程序里就可以观察到:所见即所得



若是以前版本的IDEA:



哎哟麻烦,技术真的具有不可逆性,用过就回不去喽。

11、Profiler - 更强大的分析器工具窗口

Profiler功能在2020.1就引入了,当时作为一个试验功能,但是Jetbrain承诺将来的方向会一直迭代它,然后它变得越来越强了。

上个版本,我们要用它分析一个xxx.hprof需要如下步骤:

  1. 通过jps命令找到java进程id
  2. 通过jmap -dump xxx生成一个hprof文件
  3. 将此快照文件放进IDEA的Profiler里来进行分析

具体操作示例,参见这篇文章:IntelliJ IDEA 2020.2正式发布,诸多亮点总有几款能助你提效

如果需要分析的项目就是本地项目,这顿操作还是非常麻烦的。既然是本地项目有木有更便捷的方法呢?IDEA在此版本给出了答案:



它允许你可以将分析器直接附加正在运行的应用程序上,进而选择要执行的功能:分析快照、监控CPU内存等等。

12、Profiler - 对.jfr和.hprof轻松访问

在这之前,我们需要分析一个现成的.hprof文件,只能在Profiler视窗里把它导入进来。现在更加方便了,直接可以通过File - Open 打开此文件,即自动调起Profiler视窗进行分析。

13、主菜单栏VCS -> Git

不说了,一切看图说话:



老版本是这样的:



这侧面也说明了什么问题呢:Git现在是VCS(version control system)版本控制系统的事实标准,勇敢点说甚至是唯一标准。

14、基于机器学习的代码完成

现在啥都跟机器学习扯上关系,IDEA号称这个代码补全建议在新版本里是基于机器学习技术搞的,我竟然信了。

要查看新的这套推荐系统是如何工作的,这么打开设置即可:



这样你就可以看到本次推荐的排名情况喽:

总之IDEA的自动代码完成/补全是一绝,用得越多它就越懂你,好像成为好朋友一样,有温度了。

15、其它

对Kotlin、Scala等的(新特性)支持,支持http -> cURL转换,更好的url自动补全,对Spring更好的支持等等。

当然还少不了对Javascript,以及当先很火的云原生Kubernetes的支持(主要体现在日志、脚本、配置上),这些因为不太普适,因此留给你在使用过程中慢慢发现吧。

另外,值得关注的是此版本的IDEA已经支持到了Maven 3.7.0,虽然后者还未正式发布,但这是马上的事,所以IDEA就提前先给支持喽。

升级建议

升。毕竟我木有“正版”烦恼,O(∩_∩)O哈哈~:

✍总结

作为2020年的封板之作,这个版本我个人觉得还是很讲武德的,符合定位。主要喜欢:

  1. 某些外观UI的重新设计,缓解了审美疲劳
  2. 阅读器模式,很赞
  3. 调试器的增强,是真的爱了,调试效率再进一步

虽然说坐在第二排看戏是最安全的,但每次我都安奈不住想尝试新功能的心,所以我也邀你一起吧,come on



最后不能忘了,依旧要向那些孜孜不倦为IT行业提供优秀工具的人们致敬!!!特别是捷克的那些创造者们,你们创造了非常好的工具提高了生产力,推动了社会某些产业的进步,功勋卓越!!!


推荐阅读:

IntelliJ IDEA 2020.3正式发布,年度最后一个版本很讲武德的更多相关文章

  1. IntelliJ IDEA 2020.2正式发布,诸多亮点总有几款能助你提效

    向工具人致敬.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的乌托邦]逐 ...

  2. IntelliJ IDEA 2020 的Debug功能也太好用了,真香!

    写在前边 作为一个有点强迫症的程序员来说,所有的应用软件.开发工具都必须要升级到最高版本,否则就会很难受到坐立不安.日思夜想.茶饭不思.至于什么时候得的这种病我也记不清了,哈哈哈 IntelliJ I ...

  3. Intellij IDEA 2020.1.1 破解 永久有效 亲测100%成功

    申明:本教程 WebStorm 破解补丁.激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除. 前言 作为一个有强迫症的码农,怎么能忍受自己的开发工具跟不上潮流呢?笔者以前一直用 ...

  4. 程序员必须了解!IntelliJ IDEA 2020.2的新增功能

    IDEA 因为之前破解过,所以家里的电脑都是19版本的,用的也比较顺手,也就一直懒得去动他,但是,程序猿的好奇心可能真的挺重,猎奇心里,在网上也看到了很多关于2020版本的idea的各种好处,于是,闲 ...

  5. IntelliJ IDEA 2021.3 正式发布:支持远程开发、IDE故障排查等多项优化改进

    作者:程序猿DD 博客:https://blog.didispace.com/ 昨天刚刚跟大家聊了Jetbrains即将推出轻量级编辑器Fleet,以挑战 VS Code的消息,今天又收到了Intel ...

  6. 【IDEA】IntelliJ IDEA 2020.1破解版

    IntelliJ IDEA 2020.1破解版 2020-09-09  14:58:56  by冲冲 安装链接: 1. 百度网盘下载地址链接:https://pan.baidu.com/s/1cxjz ...

  7. github for windows回滚到某一个版本,

    建议先学会使用git命令再学GUI版的git,git本来就是命令行程序,GUI本质就是执行一些命令.仅从一些icon和单词去理解一些操作难免会有偏差.而反过来,熟悉命令会更好地理解GUI操作.想要回滚 ...

  8. 【转】.NET 安装和部署(Installer) 如何卸载上一个版本

    前言 当使用.NET“安装项目”打包的安装文件,再次安装的时候会弹出如下提示,这个时候会让我们很郁闷,怎样才能自动卸载上一个安装的版本呢?方法很简单,只需简单的两个操作步骤即可解决. 操作步骤 主要由 ...

  9. HDU 1877 另一个版本 A+B

    另一个版本 A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

随机推荐

  1. [Luogu P1122]最大子树和 (简单树形DP)

    题面 传送门:https://www.luogu.org/problemnew/show/P1122 Solution 这是一道简单的树形DP题. 首先,我们可以转换一下题面,可以发现,题目要求我们求 ...

  2. python socket 二进制

    问题 在工作中经常会用到socket传输数据,例如客户端给服务器发送数据(双方约定了数据格式),在交测之前,自己用python写个接受数据的server,解析下拼成的数据格式是否正确.用python写 ...

  3. SpringBoot第九集:整合JSP和模板引擎Freemarker/Thymeleaf(2020最新最易懂)

    SpringBoot第九集:整合JSP和模板引擎(2020最新最易懂) 当客户通过前端页面提交请求后,我们以前是怎么做的?后端接收请求数据,处理请求,把响应结果交给模板引擎JSP,最后将渲染后的JSP ...

  4. waitpid()系统调用学习

    waitpid()的头文件 #include <sys/types.h>  #include <sys/wait.h> pid_t waitpid(pid_t pid,int ...

  5. 性能工具-CPU

  6. 1. 线性DP 152. 乘积最大子数组

    152. 乘积最大子数组  https://leetcode-cn.com/problems/maximum-product-subarray/ func maxProduct(nums []int) ...

  7. 《GNU_Makefile》——第3章,Makefile总述

    1.makefile的内容 一个完整的makefile包含5个东西: 显示规则,隐含规则,变量定义,指示符,注释 (1)显示规则 描述如何更新目标文件. (2)隐含规则 make程序内置的规则. ma ...

  8. mysql之分区表

    1.分区表概述: 1.分区表的主要意义在于,对于表结构进行划分,不同的数据进入不同的分区中,以便于在查询过程中,只查找指定分区的数据,减少数据库扫描的数据量. 2.虽然从逻辑上看分区表是一张表,但是底 ...

  9. java.lang.IllegalStateException: Duplicate key 20

    这个我在公司遇到的一个问题.原因:使用Map<String, String> RelationMap = relation.stream().collect(Collectors.toMa ...

  10. MindManager导出Word文档功能介绍

    Mindmanager思维导图软件作为一款能与Microsoft office软件无缝集成的思维导图软件,支持Word文档的快速导入与导出,并支持Word文档的目录生成.模板套用等,极大地方便了用户完 ...