1 概述

IDEA全称IntelliJ IDEA,主要用于Java开发的IDE,代码自动提示,重构,JUnit,代码分析等的功能非常牛逼,这篇文章首先介绍目前为止IDEA最新版本的特性,然后从UI,常用设置,快捷键,插件四个部分去食用IDEA.文章内容有点长,慢慢细品.

2 新版本特性

JetBrains在2020年4月9日发布了目前最新的版本:IntelliJ IDEA 2020.1.下面来看看新版本的特性:

2.1 中文

界面支持中文了,需要安装一个叫

Chinses(Simplified) Language Pack

的插件,这个插件是官方提供的.
嗝,我饱了——IDEA食用指南_第1张图片
至于汉化效果....不清楚,笔者不用哈哈.

2.2 Java14

新版本支持Java14,另外可以直接从IDE中下载JDK,不过下载源没有Oracle的...
嗝,我饱了——IDEA食用指南_第2张图片
嗝,我饱了——IDEA食用指南_第3张图片

2.3 LightEdit模式

就是作为简单的文本编辑器模式,无需创建或加载整个项目,就可以在类似文本编辑器中快速修改独立文件.
可以直接右键文件选择IDEA或者使用命令行打开:
在这里插入图片描述
界面非常清爽,启动速度非常快,同时菜单栏只剩下了4个:

2.4 禅模式ZenMode

这个模式超赞啊,结合了原来的免打扰模式和全屏模式.

2.5 javadoc渲染

需要设置中开启:
嗝,我饱了——IDEA食用指南_第4张图片
打开一个源码文件,快捷键Ctrl+Alt+Q,渲染后可以调节字体大小.
嗝,我饱了——IDEA食用指南_第5张图片

2.6 导航栏

可以定位到具体字段或方法.

2.7 改进Http Client

可以补全URL路径:
嗝,我饱了——IDEA食用指南_第6张图片
并且对于Spring MVC可以直接创建或者打开现有的HTTP请求文件并导航到HTTP Client:
嗝,我饱了——IDEA食用指南_第7张图片

2.8 其他

  • 终端拆分:

嗝,我饱了——IDEA食用指南_第8张图片

  • JBR11:
    JBR8成为历史,彻底过渡到JBR11:
    在这里插入图片描述
  • IntelliJ Light与Windows10 Liight主题:
    嗝,我饱了——IDEA食用指南_第9张图片
  • 新字体:JetBrains Mono(支持连字哦):
    嗝,我饱了——IDEA食用指南_第10张图片
    更多新特性请看官网,戳这里.

    3 UI篇

    好了,新特性看完了,下面看看如何做出一个漂亮的IDEA.

    3.1 背景

    一个好看的IDE怎么能没有背景?
    嗝,我饱了——IDEA食用指南_第11张图片
    可以选择透明度和缩放方式,提供了预览:
    嗝,我饱了——IDEA食用指南_第12张图片
    整体效果:

    3.2 主题

    一个好看的IDE怎么能没有一个好看的主题?
    戳这里下载主题.
    嗝,我饱了——IDEA食用指南_第13张图片
    笔者用的是Monokai Sublime Text 3:
    嗝,我饱了——IDEA食用指南_第14张图片
    下载之后,从Fille处导入:
    嗝,我饱了——IDEA食用指南_第15张图片
    提示窗口ok就行,然后重启:
    嗝,我饱了——IDEA食用指南_第16张图片
    (这里真心吹一下这个主题...不得不说真的漂亮)

    3.3 字体

    嗯...字体...这个贼重要!!!
    推荐使用等宽字体,例如:
    Source Code Pro:
    嗝,我饱了——IDEA食用指南_第17张图片
    Consolas:
    嗝,我饱了——IDEA食用指南_第18张图片
    Droid Sans Mono:
    嗝,我饱了——IDEA食用指南_第19张图片
    或者新字体也不错JetBrains Mono:
    嗝,我饱了——IDEA食用指南_第20张图片
    下面看看连字字体,首先开启连字设置:
    嗝,我饱了——IDEA食用指南_第21张图片
    新字体JetBrains Mono是支持连字的:
    嗝,我饱了——IDEA食用指南_第22张图片
    另一个要推荐的连字字体是Fira Code:
    嗝,我饱了——IDEA食用指南_第23张图片
    也很不错.

    3.4 整体风格

    3.4.1 字体大小

    如果觉得菜单栏字体小的话可以调大一点,字体建议不要改,改大小就好.
    嗝,我饱了——IDEA食用指南_第24张图片

    3.4.2 UI元素以及模式切换

    嗝,我饱了——IDEA食用指南_第25张图片
    建议为工具栏,工具窗口栏,状态栏以及导航栏设置一个快捷键,然后可以快速切换一个简洁模式.
    另外为全屏模式/免打扰模式/禅模式设置一个缩写词也是一个不错的选择,方便快速切换:
    嗝,我饱了——IDEA食用指南_第26张图片
    推荐为其中一个绑定一个鼠标快捷键,比如中键单击,这样就可以中键单击切换.
    在这里插入图片描述
    在这里插入图片描述

    3.4.3 侧栏窗口

    非必要固定建议改成Undock,滑动效果非常不错:
    嗝,我饱了——IDEA食用指南_第27张图片
    嗝,我饱了——IDEA食用指南_第28张图片

    3.4.4 编辑器

    嗝,我饱了——IDEA食用指南_第29张图片
    第一个是Soft-Wrap,就是对于太长的行显示成多行,但并没有实际插入换行符,相对的是Hard Wrap,可以在Editor->Code Style中设置.
    嗝,我饱了——IDEA食用指南_第30张图片
    第二个会对Tab进行显示:
    嗝,我饱了——IDEA食用指南_第31张图片
    第三个显示行数,第四个是侧栏图标:
    嗝,我饱了——IDEA食用指南_第32张图片
    关闭后:
    在这里插入图片描述
    第五个是缩进引导线:
    在这里插入图片描述
    嗝,我饱了——IDEA食用指南_第33张图片
    第六个"面包屑"(实际上是个导航栏,概念来自童话故事"汉赛尔和格莱特"):
    嗝,我饱了——IDEA食用指南_第34张图片
    在这里插入图片描述
    第七个是import时的弹出的窗口.

    4 常用设置篇

    这部分包含了一些常用的而且有用的设置.

    4.1 控制台

    Windows下的终端有很多,除了自带的cmd ,powershell ,还有Fluent Terminal,Windows Terminal,ConEmu,Hyper,Cmder,wsl等等,随便美化一下都很不错:
    没错来晒终端了.
    先来自带的powershell(感谢伟大的oh-my-posh):
    嗝,我饱了——IDEA食用指南_第35张图片
    Fluent Terminal:

    Windows Terminal:

    VSCode集成效果:
    嗝,我饱了——IDEA食用指南_第36张图片
    至于IDEA...显示有点问题,就不截图了,图形显示得有点奇怪,可能是windows上的终端支持得不够好.
    搞了这么多最后还是决定把终端给关了(老老实实用Windows Terminal...)
    嗝,我饱了——IDEA食用指南_第37张图片
    IDEA的终端是一个插件,不需要的话关了就好,如果需要的话,可以直接搜索Terminal,在shell Path这里设置默认终端的路径(默认cmd),搜索Console Font修改字体.
    嗝,我饱了——IDEA食用指南_第38张图片

    4.2 自动去除未引用的包

    Editor-Gereral-Auto Import:
    嗝,我饱了——IDEA食用指南_第39张图片

    4.3 编码统一UTF8

    嗝,我饱了——IDEA食用指南_第40张图片

    4.4 JDK

    建议JDK统一.

    4.4.1 编译JDK

    嗝,我饱了——IDEA食用指南_第41张图片

    4.4.2 项目JDK

    嗝,我饱了——IDEA食用指南_第42张图片

    4.4.3 模块JDK

    嗝,我饱了——IDEA食用指南_第43张图片

    4.4.4 已有JDK

    嗝,我饱了——IDEA食用指南_第44张图片
    2020.1版本提供了下载JDK的功能.

4.5 Maven/Gradle

构建工具一般用Maven或Gradle,通常需要用其中一个即可,笔者用的是Maven,以Maven为例.
首先修改用户目录下的.m2/settings.xml,这个是Maven的配置文件,建议修改localRepository:
在这里插入图片描述
默认位置如图,对于Windows用户不建议C盘,在其他地方找一个,填绝对路径.
其次在加入如下镜像:


    alimaven
    aliyun maven
    http://maven.aliyun.com/nexus/content/groups/public/
    central



    uk
    central
    Human Readable Name for this Mirror.
    http://uk.maven.org/maven2/



    CN
    OSChina Central
    http://maven.oschina.net/content/groups/public/
    central



    nexus
    internal nexus repository
    http://repo.maven.apache.org/maven2
    central

然后打开设置就可以看到对应的更改了.

4.6 关闭标签栏

嗝,我饱了——IDEA食用指南_第45张图片
一次只打开一个文件,也就是说没有标签栏,看个人吧.

4.7 自动编译

这功能用起来非常爽,强烈建议开启,配合JRebel,从此让漫长的编译与部署见鬼去吧!
嗝,我饱了——IDEA食用指南_第46张图片
两次shift搜索Registry:
嗝,我饱了——IDEA食用指南_第47张图片
找到compiler.automake.allow.when.app.running:
嗝,我饱了——IDEA食用指南_第48张图片
需要的话可以加上compile.document.save.trigger.delay,这个是针对静态文件如JS,CSS的更新.

4.8 代码补全不区分大小写

嗝,我饱了——IDEA食用指南_第49张图片
看个人,关了匹配大小写的话,直接输入小写字母除了补全变量以外还会补全类,可能会带来一点不方便.

4.9 代码模板/补全

VScode中的syso就可以输出System.out.println,这个应该很多人知道,但是IDEA中不可以(虽然,用的是sout).
如果想用syso输出怎么办呢?
没事,用补全!
IDEA中的补全分为两种,一种是模板补全(Live Templates),一种是后缀补全(Postfix Completion).

4.9.1 Live Templates

先看一下自带的模板:
嗝,我饱了——IDEA食用指南_第50张图片
新建一个模板组,叫Java:
在这里插入图片描述
然后添加模板:
嗝,我饱了——IDEA食用指南_第51张图片
define这里可以选择应用的范围,从上到下是:注释,声明,表达式,智能类型补全,语句,字符串,其他.
嗝,我饱了——IDEA食用指南_第52张图片
然后输入补全的内容,其中

$END$

表示光标的位置(类似的还有很多,具体查看默认的模板).
嗝,我饱了——IDEA食用指南_第53张图片
如果不想用Tab补全,可以考虑一下空格(不过估计半年后键盘的空格就弹不起来).
当然,这样只能补全自定义的模板,一些自定义的类无法使用空格,可以考虑加一个全局的快捷键:
嗝,我饱了——IDEA食用指南_第54张图片
这样就能实现空格补全了(努力让空格弹不起来吧!!!)
再介绍一个字符串常量补全:
嗝,我饱了——IDEA食用指南_第55张图片
利用了内置的函数capitalizeAndUnderscore(字母大写,并且下划线分隔)与cipboard(调用剪贴板最近一次内容).
首先把变量名复制到剪贴板,然后调用补全"cs",配置如下:
嗝,我饱了——IDEA食用指南_第56张图片
还有其他很多函数,详见官网文档(戳这里).

4.9.2 Postfix Completion

后缀补全其实就是输入.之后出现的补全,比如:
嗝,我饱了——IDEA食用指南_第57张图片
自带的后缀补全已经很强大了,包括常用的for,fori,if,iter等:
嗝,我饱了——IDEA食用指南_第58张图片
这里添加一个数组输出的补全作为例子:
嗝,我饱了——IDEA食用指南_第59张图片
其中

$EXPR$

表示目标表达式,上面可以选择应用的表达式类型,这里是数组,也就是说,只有对于数组类型才会出现这个后缀补全:
嗝,我饱了——IDEA食用指南_第60张图片

4.10 ctrl+滚轮改变字体大小

嗝,我饱了——IDEA食用指南_第61张图片

5 快捷键篇

官方快捷键参考列表:
嗝,我饱了——IDEA食用指南_第62张图片

5.1 编辑

作用
Ctrl+Space 基本代码补全
Ctrl+Shift+Space 智能代码补全
Ctrl+Shift+Enter 补全语句
Ctrl+Q 快速查看文档
Alt+Insert 生成代码(getter/setter,构造方法,toString等)
Ctrl+O 重载方法
Ctrl+I 实现接口方法
Ctrl+Alt+T 代码包裹(if/else/try/catch...)
Ctrl+/ 行注释/取消行注释
Ctrl+Shift+/ 块注释/取消块注释
Ctrl+W 扩展选择范围
Ctrl+Shift+W 缩减选择范围
Alt+Enter 快速修复问题和显示猜测动作
Ctrl+Alt+L 重新格式化代码
Ctrl+Shift+I 自动缩进行
Ctrl+Shift+V 从缓冲区粘贴(Ctrl+C过的内容会放进缓冲区,监控系统剪切板)
Ctrl+D 复制当前行或选择块
Ctrl+Y 删除当前行
Ctrl+Shift+J 智能连接行
Ctrl+Enter 智能行截断
Shift+Enter 智能新增行
Ctrl+Shift+U 切换光标所在单词或选择块大小写
Ctrl+Shift+[/] 选择到代码块开始/结束
Ctrl+Backspace/Delete 删除到单词首/尾
Ctrl+ +/- 折叠/打开代码块
Ctrl+Shift+ +/- 折叠所有/打开所有

5.2 查找类/方法/变量使用情况

作用
Alt/Ctrl+F7 (Ctrl表示在文件中)查找光标所在的类/方法/变量使用情况
Ctrl+Shift+Alt+F7 在文件中高亮光标所在的类/方法/变量
Ctrl+Alt+F7 显示使用情况

5.3 导航

作用
Ctrl+N 定位到类
Ctrl+Shift+N 定位到文件
Ctrl+Alt+Shift+N 定位到标记
Alt+Right/Left (建议改成Ctrl+Tab/Ctrl+Shift+Tab)切换到下一个/上一个标签
ESC 回到编辑器
Shift+ESC 隐藏当前或者上一次激活的窗口
Ctrl+G 定位到行
Ctrl+E 定位到最近打开的文件
Ctrl+Shift+Backspace 定位到上一个编辑位置
Ctrl+B 定位到声明
Ctrl+U 定位到父类/夫方法
Alt+Up/Down 定位到上一个/下一个方法
Ctrl+[/] 定位到代码块开始/结束
Ctrl+H 类型层次结构
Ctrl+Shift+H 方法层次结构
Ctrl+Alt+H 调用层次结构
F2/Shift+F2 下一个/上一个高亮错误
F11 切换书签状态
Ctrl+ 0-9 定位到书签
Shift+F11 显示书签

5.4 搜索/替换

作用
Shift两次 搜索所有
Ctrl+F 搜索
F3/Shift+F3 搜索下一个/上一个
Ctrl+R 替换
Ctrl+Shift+F 全局搜索
Ctrl+Shift+R 全局替换

5.5 代码模板

作用
Ctrl+Alt+J 模板包裹
Ctrl+J 插入模板

5.6 重构

作用
F5 复制
F6 移动
Alt+Delete 安全删除
Shift+F6 重命名
Ctrl+F6 重构类/方法
Ctrl+Alt+N 内联
Ctrl+Alt+M 提取当前选择为方法
Ctrl+Alt+V 提取当前选择为变量
Ctrl+Alt+F 提取当前选择为字段
Ctrl+Alt+C 提取当前选择为常量
Ctrl+Alt+P 提取当前选择为参数

5.7 调试

作用
F8/F7 step over/into
Shift+F8/Shift+F7 智能step over/into
Alt+F9 运行到光标处
Alt+F8 计算表达式
F9 恢复程序
Ctrl+F8 切换断点
Ctrl+Shift+F8 查看断点

5.8 编译和运行

作用
Ctrl+F9 构建工程
Ctrl+Shift+F9 编译选择的文件/包/模块
Alt+Shift+F10/F9 选择配置运行/调试
Shift+F10/F9 运行/调试

5.9 版本控制系统/本地历史

作用
Ctrl+K/T 提交工程到VCS/从VCS更新
Alt+Shift+C 查看文件最近变化
Alt+反引号 VCS操作窗口

5.10 通用

作用
Alt+0 信息窗口
Alt+1 项目窗口
Alt+2 收藏窗口
Alt+3 查找
Alt+4 运行窗口
Alt+5
Alt+6 TODO窗口
Alt+7 项目结构窗口
Alt+8 服务窗口
Alt+9 版本控制
Alt+Shift+F 添加到收藏
Ctrl+反引号 切换主题
Ctrl+Alt+S 设置窗口
Ctrl+Alt+Shift+S 项目结构窗口
Ctrl+Shift+A 查找动作
Ctrl+Tab 切换窗口/标签

5.11 必记

记一些必要的就好了.

  • 重载/接口方法:Ctrl+O/I
  • 代码包裹:Ctrl+Alt+T
  • 注释:Ctrl+/ Ctrl+Shift+/
  • 选择:Ctrl+W Ctrl+Shift+W
  • 万能搜索:两次Shift
  • 定位文件:Ctrl+E
  • 定位行:Ctrl+G
  • 搜索/替换:Ctrl+(Shift+)F Ctrl+(Shift+)R
  • 代码模板:Ctrl+(Alt+)J
  • 重构:Ctrl+Alt+C/V/M
  • 调试:F7 F8 Shift+F9
  • 运行:Shift+F10
  • VCS:Alt+反引号
  • 切换窗口:Alt+数字

6 插件篇

6.1 自带插件

IDEA自带的插件分为了18类,分别是

  • Android
  • Build Tools
  • Code Coverage
  • Database
  • Deployment
  • HTML and XML
  • IDE Settings
  • JavaScript Frameworks and Tools
  • JVM Frameworks
  • Languages
  • Plugin Development
  • Style Sheets
  • Swing
  • Template Languages
  • Test Tools
  • Themes
  • Version Controls
  • Other Tools

建议不需要的可以选择关闭,只是Java开发的话,可以关掉Android,Build Tools中的Ant与Gradle,JavaScript Frameworks and Tools中的CoffeeScript等等.另外新版本带了一个win10主题插件:
嗝,我饱了——IDEA食用指南_第63张图片
是亮色主题,不需要也可以顺便关了.
对于VCS,大部分人应该用的是Git与Github,可以把Mercuial,Perforce,Subversion关了.
作为一个牛逼的IDE,除了自带的插件外,当然需要安装额外的插件,那么,下面就是激动人心的插件推荐环节.

6.2 Code Glance

代码小地图,默认快捷键Ctrl+Shift+G:
嗝,我饱了——IDEA食用指南_第64张图片

6.3 Grep Console

控制台高亮输出,默认配置有一个叫default的组,里面按照日志的等级划分,可以进行不同颜色的高亮,需要手动配置.
嗝,我饱了——IDEA食用指南_第65张图片

6.4 GsonFormat

根据JSON自动生成对应的字段与getter/setter.

6.5 IdeaVim

Vim键位绑定,神器不解释.

6.6 Key Promoter X

快捷键提示工具,每次使用鼠标点击操作会提示这个操作的快捷键和个人使用次数,如果没有快捷键的话会提示绑定快捷键.

6.7 Rainbow Brackets

看名字就知道了,彩色的括号:
在这里插入图片描述

6.8 JRebel and XRebel

热部署插件,有了它,不用再等待漫长的编译和部署.
具体使用看笔者的另一篇文章,戳这里.

6.9 Lombok

强大的注解工具,常用的注解有:

  • @Getter/@Setter:可以作用与类或成员上,作用与类上生成所有成员的getter/setter,作用与成员生成该成员的getter/setter.
  • @ToString:作用与类上,覆盖默认的toString,可以通过of/exclude限定/排除某些字段.
  • @EqualsAndHashCode:作用与类上,覆盖默认的equals与hashCode.
  • @NonNull:作用与成员变量/参数,标识不能为空.
  • @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor:作用与类上,分别表示生成无参构造方法,生成包含final与@NonNull的成员变量的构造方法,生成所有成员变量的构造方法.
  • @Data:作用与类上,等价于@ToString+@EqualsAndHashCode+@Getter+@Setter+@RequiredArgsConstructor.

具体使用方式自行搜索.

6.10 power-mode

敲代码爽得飞起:
嗝,我饱了——IDEA食用指南_第66张图片
设置在Apperance中,建议把SHAKE!(晃动),FLAMES!(火焰)与POWER INDICATOR!(右下角的小窗口)关闭.
嗝,我饱了——IDEA食用指南_第67张图片

6.11 Translation

谷歌翻译插件,直接右键翻译即可.
嗝,我饱了——IDEA食用指南_第68张图片
设置目标语言为中文.
嗝,我饱了——IDEA食用指南_第69张图片

6.12 插件安装

如果直接从插件仓库安装得慢的话可以直接下载插件从本地安装.
嗝,我饱了——IDEA食用指南_第70张图片
以上插件合集:

Github.

码云.

7 参考

1.Idea使用指南--实用版

2.【开发工具】IDEA简明使用指南

3.程序员必备编译器 IntelliJ IDEA使用指南

4.IntelliJ IDEA 2020.1 正式发布,15 项重大特性、官方支持中文了!

5.IntelliJ Idea 常用快捷键列表

6.Lombok的基本使用