嗝,我饱了——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". 相比于 ...
随机推荐
- 2021-2-25:对于 Java MMAP,如何查看文件映射脏页,如何统计MMAP的内存大小?
我们写一个测试程序: public static void main(String[] args) throws Exception { RandomAccessFile randomAccessFi ...
- 代码小知识之UUID
1.生成UUID(UUID保证对在同一时空中的所有机器都是唯一的,UUID的唯一缺陷在于生成的结果串会比较长.UUID 来作为数据库数据表主键是非常不错的选择,保证每次生成的UUID 是唯一的) UU ...
- 如何让别人访问我的电脑的vue项目
步骤: 1.关闭防火墙. 2.修改build/webpack.dev.conf.js中的"const HOST = process.env.HOST"为"const HO ...
- R语言学习4:函数,流程控制,数据框重塑
本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...
- 你要是还学不会,请提刀来见 Typora+PicGo+Gitee + node.js 打造个人高效稳定优雅图床
你要是还学不会,请提刀来见 Typora+PicGo+Gitee + node.js 打造个人高效稳定优雅图床 经过前面两弹的介绍,相信大家对图床都不陌生了吧, 但是小魔童觉得这样做法还是不方便,使用 ...
- Markdown(2)基本语法
Markdown 是一种轻量级标记语言 , 通过简单的标记语法,使文本内容具有一定的格式 . 一.段落 1. 标题 语法格式: 符号 "#" 可以标记 1~6级标题.一级标题对 ...
- SAP Spartacus简介
转: SAP Spartacus简介 终于写到Jerry目前正在做的开发任务了. 2015年的时候,那时Jerry已经做了一年多的SAP UI5开发,想进一步精进自己的开发技能,就申请了一个位于德国W ...
- Kafka SASL ACL配置踩坑总结
源起:工程现阶段中间件采用的是kafka.满足了大数据的高吞吐,项目间的解耦合,也增强了工程的容错率与扩展性.但是在安全这一块还有漏洞,kafka集群中,只要网站内的任何人知道kafka集群的ip与t ...
- HTB系列之七:Bastard
出品|MS08067实验室(www.ms08067.com) 这次挑战的是 HTB 的第7台靶机:Bastard 技能收获: PHP Unserilaize CMS Version Identify ...
- Java基础:特性write once;run anywhere!
三高:高可用 高性能 高并发 特性: 简单性 面向对象:万物皆为对象 可移植性 高性能 分布式 动态性 多线程 安全性 健壮性 Java三大版本 javaSE:标准版(桌面程序,控制台) javaME ...