嗝,我饱了——IDEA食用指南
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
的插件,这个插件是官方提供的.
至于汉化效果....不清楚,笔者不用哈哈.
2.2 Java14
新版本支持Java14,另外可以直接从IDE中下载JDK,不过下载源没有Oracle的...
2.3 LightEdit模式
就是作为简单的文本编辑器模式,无需创建或加载整个项目,就可以在类似文本编辑器中快速修改独立文件.
可以直接右键文件选择IDEA或者使用命令行打开:
界面非常清爽,启动速度非常快,同时菜单栏只剩下了4个:
2.4 禅模式ZenMode
这个模式超赞啊,结合了原来的免打扰模式和全屏模式.
2.5 javadoc渲染
需要设置中开启:
打开一个源码文件,快捷键Ctrl+Alt+Q,渲染后可以调节字体大小.
2.6 导航栏
可以定位到具体字段或方法.
2.7 改进Http Client
可以补全URL路径:
并且对于Spring MVC可以直接创建或者打开现有的HTTP请求文件并导航到HTTP Client:
2.8 其他
- 终端拆分:
- JBR11:
JBR8成为历史,彻底过渡到JBR11:
- IntelliJ Light与Windows10 Liight主题:
- 新字体:JetBrains Mono(支持连字哦):
更多新特性请看官网,戳这里.
3 UI篇
好了,新特性看完了,下面看看如何做出一个漂亮的IDEA.
3.1 背景
一个好看的IDE怎么能没有背景?
可以选择透明度和缩放方式,提供了预览:
整体效果:
3.2 主题
一个好看的IDE怎么能没有一个好看的主题?
戳这里下载主题.
笔者用的是Monokai Sublime Text 3:
下载之后,从Fille处导入:
提示窗口ok就行,然后重启:
(这里真心吹一下这个主题...不得不说真的漂亮)
3.3 字体
嗯...字体...这个贼重要!!!
推荐使用等宽字体,例如:
Source Code Pro:
Consolas:
Droid Sans Mono:
或者新字体也不错JetBrains Mono:
下面看看连字字体,首先开启连字设置:
新字体JetBrains Mono是支持连字的:
另一个要推荐的连字字体是Fira Code:
也很不错.
3.4 整体风格
3.4.1 字体大小
如果觉得菜单栏字体小的话可以调大一点,字体建议不要改,改大小就好.
3.4.2 UI元素以及模式切换
建议为工具栏,工具窗口栏,状态栏以及导航栏设置一个快捷键,然后可以快速切换一个简洁模式.
另外为全屏模式/免打扰模式/禅模式设置一个缩写词也是一个不错的选择,方便快速切换:
推荐为其中一个绑定一个鼠标快捷键,比如中键单击,这样就可以中键单击切换.
3.4.3 侧栏窗口
非必要固定建议改成Undock,滑动效果非常不错:
3.4.4 编辑器
第一个是Soft-Wrap,就是对于太长的行显示成多行,但并没有实际插入换行符,相对的是Hard Wrap,可以在Editor->Code Style中设置.
第二个会对Tab进行显示:
第三个显示行数,第四个是侧栏图标:
关闭后:
第五个是缩进引导线:
第六个"面包屑"(实际上是个导航栏,概念来自童话故事"汉赛尔和格莱特"):
第七个是import时的弹出的窗口.
4 常用设置篇
这部分包含了一些常用的而且有用的设置.
4.1 控制台
Windows下的终端有很多,除了自带的cmd ,powershell ,还有Fluent Terminal,Windows Terminal,ConEmu,Hyper,Cmder,wsl等等,随便美化一下都很不错:
没错来晒终端了.
先来自带的powershell(感谢伟大的oh-my-posh):
Fluent Terminal:
Windows Terminal:
VSCode集成效果:
至于IDEA...显示有点问题,就不截图了,图形显示得有点奇怪,可能是windows上的终端支持得不够好.
搞了这么多最后还是决定把终端给关了(老老实实用Windows Terminal...)
IDEA的终端是一个插件,不需要的话关了就好,如果需要的话,可以直接搜索Terminal,在shell Path这里设置默认终端的路径(默认cmd),搜索Console Font修改字体.
4.2 自动去除未引用的包
Editor-Gereral-Auto Import:
4.3 编码统一UTF8
4.4 JDK
建议JDK统一.
4.4.1 编译JDK
4.4.2 项目JDK
4.4.3 模块JDK
4.4.4 已有JDK
2020.1版本提供了下载JDK的功能.
4.5 Maven/Gradle
构建工具一般用Maven或Gradle,通常需要用其中一个即可,笔者用的是Maven,以Maven为例.
首先修改用户目录下的.m2/settings.xml,这个是Maven的配置文件,建议修改localRepository:
默认位置如图,对于Windows用户不建议C盘,在其他地方找一个,填绝对路径.
其次在<mirrors>加入如下镜像:
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
然后打开设置就可以看到对应的更改了.
4.6 关闭标签栏
一次只打开一个文件,也就是说没有标签栏,看个人吧.
4.7 自动编译
这功能用起来非常爽,强烈建议开启,配合JRebel,从此让漫长的编译与部署见鬼去吧!
两次shift搜索Registry:
找到compiler.automake.allow.when.app.running:
需要的话可以加上compile.document.save.trigger.delay,这个是针对静态文件如JS,CSS的更新.
4.8 代码补全不区分大小写
看个人,关了匹配大小写的话,直接输入小写字母除了补全变量以外还会补全类,可能会带来一点不方便.
4.9 代码模板/补全
VScode中的syso就可以输出System.out.println,这个应该很多人知道,但是IDEA中不可以(虽然,用的是sout).
如果想用syso输出怎么办呢?
没事,用补全!
IDEA中的补全分为两种,一种是模板补全(Live Templates),一种是后缀补全(Postfix Completion).
4.9.1 Live Templates
先看一下自带的模板:
新建一个模板组,叫Java:
然后添加模板:
define这里可以选择应用的范围,从上到下是:注释,声明,表达式,智能类型补全,语句,字符串,其他.
然后输入补全的内容,其中
$END$
表示光标的位置(类似的还有很多,具体查看默认的模板).
如果不想用Tab补全,可以考虑一下空格(不过估计半年后键盘的空格就弹不起来).
当然,这样只能补全自定义的模板,一些自定义的类无法使用空格,可以考虑加一个全局的快捷键:
这样就能实现空格补全了(努力让空格弹不起来吧!!!)
再介绍一个字符串常量补全:
利用了内置的函数capitalizeAndUnderscore(字母大写,并且下划线分隔)与cipboard(调用剪贴板最近一次内容).
首先把变量名复制到剪贴板,然后调用补全"cs",配置如下:
还有其他很多函数,详见官网文档(戳这里).
4.9.2 Postfix Completion
后缀补全其实就是输入.之后出现的补全,比如:
自带的后缀补全已经很强大了,包括常用的for,fori,if,iter等:
这里添加一个数组输出的补全作为例子:
其中
$EXPR$
表示目标表达式,上面可以选择应用的表达式类型,这里是数组,也就是说,只有对于数组类型才会出现这个后缀补全:
4.10 ctrl+滚轮改变字体大小
5 快捷键篇
官方快捷键参考列表:
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主题插件:
是亮色主题,不需要也可以顺便关了.
对于VCS,大部分人应该用的是Git与Github,可以把Mercuial,Perforce,Subversion关了.
作为一个牛逼的IDE,除了自带的插件外,当然需要安装额外的插件,那么,下面就是激动人心的插件推荐环节.
6.2 Code Glance
代码小地图,默认快捷键Ctrl+Shift+G:
6.3 Grep Console
控制台高亮输出,默认配置有一个叫default的组,里面按照日志的等级划分,可以进行不同颜色的高亮,需要手动配置.
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
敲代码爽得飞起:
设置在Apperance中,建议把SHAKE!(晃动),FLAMES!(火焰)与POWER INDICATOR!(右下角的小窗口)关闭.
6.11 Translation
谷歌翻译插件,直接右键翻译即可.
设置目标语言为中文.
6.12 插件安装
如果直接从插件仓库安装得慢的话可以直接下载插件从本地安装.
以上插件合集:
码云.
7 参考
4.IntelliJ IDEA 2020.1 正式发布,15 项重大特性、官方支持中文了!
如果觉得文章好看,欢迎点赞.
同时欢迎关注微信公众号:氷泠之路.
嗝,我饱了——IDEA食用指南的更多相关文章
- Angular 从入坑到挖坑 - 组件食用指南
一.Overview angular 入坑记录的笔记第二篇,介绍组件中的相关概念,以及如何在 angular 中通过使用组件来完成系统功能的实现 对应官方文档地址: 显示数据 模板语法 用户输入 组件 ...
- ffuf 基础食用指南
PS: 1. 下文出现的某些字典 有可能是因为摆出效果 我自己瞎搞得字典 2. 分享一些好的工具 3. 其实Wfuzz也很好用的 4. 很早之前就在语雀写过Wfuzz和ffuf的笔记 但是一直没有公开 ...
- Git 简易食用指南 v2.0
写在前面 一开始我们先聊一聊版本控制,什么是版本控制呢?版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.具体大类分为: 本地版本控制系统 集中式版本控制系统SVN 分布式 ...
- go 食用指南
Golang高效食用秘籍 一.关于构建 1.1 go环境变量 $ go env // 查看go 的环境变量 其中 GOROOT 是golang 的安装路径 GOPATH 是go命令依赖的一个环境变量 ...
- 二.Spring boot食用指南:结合Jpa(Hibernate) 构建MVC架构
1.POM依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- 滴滴出行开源项目doraemonkit食用指南
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/94 doraemonkit 功能介绍 一两周前在地铁上刷任 ...
- 恭喜你,Get到一份 正则表达式 食用指南
先赞后看,养成习惯 前言 正则表达式 正则表达式: 定义一个搜索模式的字符串. 正则表达式可以用于搜索.编辑和操作文本. 正则对文本的分析或修改过程为:首先正则表达式应用的是文本字符串(text/st ...
- [日常填坑系列]CAP食用指南-版本引用问题
一.前言 最近,由于好久没升级底层框架,一直用着netcore2.2版本,导致有些包没能更新到最新的版本,例如:CAP. 然而,在最近升级到CAP:3.1.2版本的时候,发现有点小坑,只能退回到CAP ...
- python学习笔记 | macOS Big Sur动态壁纸食用指南
目录 前言 爬虫篇 壁纸使用篇 后记 前言 北京时间23日凌晨1点,苹果WWDC2020大会开幕.在发布会上,苹果正式发布了新版macOS,并将其命名为"Big Sur". 相比于 ...
随机推荐
- Dev GridControl列绑定LookUpEdit数据源:默认值
在Winform开发过程中,GridControl控件是比较常见的,尤其是其数据源的灵活性,为我们提供了不少的便利. 在使用Dev的GridControl的时候,有时候会在列的Column Edit属 ...
- HTTP/1.1报文详解
本文为<三万长文50+趣图带你领悟web编程的内功心法>第三个章节. 3.HTTP/1.1报文详解 在RFC2616中心详细的描述了HTTP/1.1[1]的报文,感兴趣的朋友也可以前往阅读 ...
- Spring Boot和Thymeleaf整合,结合JPA实现分页效果
在项目里,我需要做一个Spring Boot结合Thymeleaf前端模版,结合JPA实现分页的演示效果.做的时候发现有些问题,也查了现有网上的不少文档,发现能全栈实现的不多,所以这里我就把我的做法, ...
- 腾讯数据库tdsql部署与验证
环境准备 | 主机 | IP | 配置(最低要求配置) | | :----- | ------------- | ------------------ | | node-1 | 192.168.1.8 ...
- Java流程控制:循环结构
一.简介 顺序结构的程序语句只能被执行一次,如果您想要同样的操作执行多次,就需要使用循环结构. Java中有三种主要的循环结构: 'while'循环 'do...while'循环 'for'循环 在J ...
- 后端程序员之路 32、Index搜索引擎实现分析1-类的设计
# 1.forward_index 正排索引(正向索引)- filter_t- filter_judge # 2.inverted_index 倒排索引(反向索引)- inverted_pre_sco ...
- HDOJ-1024(动态规划+滚动数组)
Max Sum Plus Plus HDOJ-1024 动态转移方程:dp[i][j]=max(dp[i][j-1]+a[j],max(dp[i-1][k])+a[j]) (0<k<j) ...
- POJ-1458(LCS:最长公共子序列模板题)
Common Subsequence POJ-1458 //最长公共子序列问题 #include<iostream> #include<algorithm> #include& ...
- spring 整合kafka监听消费
前言 最近项目里有个需求,要消费kafka里的数据.之前也手动写过代码去消费kafka数据.但是转念一想.既然spring提供了消费kafka的方法.就没必要再去重复造轮子.于是尝试使用spring的 ...
- 测试平台系列(2) 给Pity添加配置
给Pity添加配置 回顾 还记得上篇文章创立的「Flask」实例吗?我们通过这个实例,给根路由 「/」 绑定了一个方法,从而使得用户访问不同路由的时候可以执行不同的方法. 配置 要知道,在一个「Web ...