一.配置概览
1.主要配置
- 设置主题
- 一键导出 idea 配置
- 一键导入 idea 配置
- 设置 maven
- 连接 git
- live template 模版
2.其他设置
- 字体大小
- 自动导入包
- 方法分割线
- 忽略大小写
- 安装插件
- 修改快捷键
3.历史版本
最好下载 2021.1.3 版本,SQL 可以格式化,美化。
二.快捷键
1.查找
- double shift 全局搜索
- F19+3 添加书签
- F19+A 打开全部书签
- command+E 预览最近打开
- command+1 打开或隐藏项目列表
- command+option+N 模糊查找接口
- command+n 查找类
- command+逗号 打开设置弹窗
- command+7 查看类的方法
- command+2 查看书签,断点,最爱
- command+f12 查找类的方法
- command+g 查找单词使用位置,不区分大小写
- command+G 下一个出现的单词
- command+shift+a 打开 action 查找
- command+option+o 查找接口,或者方法
- control+H 查看类的结构,继承关系或者通过 navigate–>type hierarchy
- command+D 比对文件
- command+L 跳转到指定行
- 跳转
- option+上下键 翻页
- command+上下 到文件的顶部底部
- command+左右 到当前行的首尾
- command+左右+shift 选中
- option+左右 单词之间跳转
2.debug
debug 模式下
- F8 执行下一步
- F9 到下一个断点
- F19+9 跳转到当前行
- command+shift+f8 找到 bookmarks 全部断点
- 使用 F19+9 也可以跳转到下一个断点
3.git
- command+T 更新代码
- command+K 提交代码
- command+shift+K 推送代码
- command+P 合并代码 merge
- option+command+Z 撤销代码
- option+command+K 提交并推送 需要先按 command+k 选中提交文件
4.编辑
- command+option+/ 段注释
- command+/ 行注释
- command+c 复制当前行
- shift+command+上 选中到头部
- shift+command+下 选中到尾部
- option+command+上 代码上移
- option+command+下 代码下移
- command+d 复制当前行
- control+command+下 复制当前行
- command+option+左 上一次编辑的地方
- command+option+右 下一次编辑的地方
- command+option+T 生成 try-catch
- option+向上 选中单词
- command+shift+u 是大小写转换
- option+m 是去掉空行
- option+删除键 删除首到当前位置
- command+删除键 删除当前行
- command+r 替换
- command+shift+r 全局替换
- control+enter 生成构造方法或 get 方法或 set 方法
- command+option+l 代码格式化
- shift+command+n 快速生成临时文件
- option+shift+s 括号外代码高亮–外面变黑
- command+shift+s 括号代码高亮
- command+shift+delete 返回上次编辑处
- command+shift+e 最近编辑列表
- command+shift+加减 折叠方法
- command+option+加减 折叠当前
- shift+上 按行向上选定
- shift+下 按行向下选定
- option+上 块选定
- control+g 选中多个,同时进行编辑
- command+option+R CamelCase 快捷键
- control+5 复制文件
- control+shift+6 修改文件名
5.启动
- control+R 正常运行
- control+shift+D debug 启动项目
- command+R 重启运行
- command+F9 编译项目
6.定位
- command+1 定位到项目目录
- command+home 页首
- command+end 页尾
- command+` 切换项目窗口
- command+option+减号 折叠当前光标所在代码
- command+加号 展开目录
- command+减号 折叠目录
- command+B 定义处和使用处
- command+option+B 实现处
- F19+Y 唤起idea终端
7.配置快捷键
- Extend Selection 扩展选中 option+W
- Extend Line Selection 选中行 option+L
- Editor Actions | Duplicate Line or Selection
- Editor Actions | Extend Line Selection
- Editor Actions | Scroll to Bottom
- Editor Actions | Scroll to Top
- Editor Actions | Extend Selection
- Main Menu | File | Open Recent
- Main Menu | Edit | Find | Replace
- Main Menu | Navigate | Go to File...
- Main Menu | Navigate | Navigate in File | Next Method
- Main Menu | Navigate | Navigate in File | Previous Method
- Main Menu | Navigate | File Structure
- Main Menu | Navigate | Bookmarks | Toggle Bookmark
- Main Menu | Navigate | Bookmarks | Show Bookmarks
- Main Menu | Code | Move Line Down
- Main Menu | Code | Move Line Up
- Main Menu | Refactor | Rename...
- Main Menu | Refactor | Copy...
- Main Menu | Run | Debugging Actions | Run to Cursor
- Main Menu | Run | Debugger Actions | Debugging Actions | Force Run to Cursor
- Main Menu | Run | View Breakpoints...
- Main Menu | Git | Git | Pull...
- Version Control Systems | Diff & Merge | Next Difference
三.具体配置
1.一键导入导出配置
- 先在旧电脑导出配置
- 再导入到新电脑
2.新项目默认配置
- 配置新项目的默认 maven 仓库
- 修改包自动导入
3.配置主题
- XCode-Dark Theme 加 Atom Material Icons
- Solarized Dark
- One Dark theme
- Material Theme UI
4.配置忽略大小写
5.配置自动导包
Settings→Editor→General→Auto Import选中 Optimize imports on the fly 和 Add unambiguous imports on the fly
6.配置方法分割线
7.设置字体
8.配置 live Templates
login
log.info("$START$={}",$END$);
non
if (Objects.nonNull($START$)) {
$END$
}
isn
if (Objects.isNull($START$)) {
$END$
}
co
/**
*$END$
*@author : qinyingjie
*@date : $DATE$
*/
使用安卓的log打印,修改成符合java的格式:
- logm 打印方法和参数信息
- logr 打印返回值信息
groovyScript("def params = _2.collect {it + ' = [\" + ' + it + ' + \"]'}.join(', '); return '\"' + _1 + '() called' + (params.empty ? '' : ' with: ' + params) + '\"'", methodName(), methodParameters())
groovyScript("def params = _2.collect {it + '= {}'}.join(', '); return '\"' + _1 + '() called' + (params.empty ? '' : ' with: ' + params) + '\"'+','", methodName(), methodParameters())
test:
@Test
@DisplayName("$TEST_NAME$")
void $METHOD_NAME$() {
Assertions.fail("no passed.");
$END$
}
9.sql 格式化
关键字大写
逗号分隔位置
10.关闭更新提示
11.设置 tables 个数
设置tabs个数
设置多行显示
12.显示文件修改时间
13.设置代码高亮
14.指定 sql 语法
右键可以看到 change Dialect,然后可以选择相应的 SQL 语法
15.滚轮调整大小
Command + 滑动滚轮 调整窗口显示大小
16.设置多实例
- 旧版本是 allow parallel run
- 新版本点击 Modify options,然后 allow multiple instances
17.设置更新
设置更新不提示,插件更新需要提示
18.自动编译
19.配置文件的编码方式
20.Database 展示表关系
显示表关系:
增删改查:
增删改查的 sql 会提供预览,方便记录下来,供生产环境使用
21.TODO
自定义todo,和别人区别开
四.插件使用
1.插件市场
jetbrains插件
https://plugins.jetbrains.com/plugin/14280-restfultool
2.高频插件
- Bito 不需要翻墙的chatgpt
- Squaretest 添加测试类
- CodeGeeX 免费Ai代码提示
- MapStruct Support 支持MapStruct
- Pokemon Progress 宝可梦加载
- Presentation Assistant 快捷键提示
- JPA Support 逆向工程
- Grep Console 日志级别颜色设置
- copilot 代码提示
- Atom Material File Icons 文件图标
- vo2dto 类转换
- RESTfulToolkit 接口快捷访问
- LeetCode with labuladong 刷题插件
- Presentation Assistant 快捷键展示
- GenerateAllSetter 自动 set 值
- CamelCase 字符串格式切换
- HighlightBracketPair 括号开始结尾高亮显示
- Translation 翻译插件
- Codota 代码提示
- CodeGlance Pro 代码缩略图
- JUnitGenerator 自动生成测试类
- Maven Helper maven 管理工具
- Rainbow Brackets Lite 彩色括号
- Alibaba Java Coding Guidelines 代码规范检测
- Alibaba Cloud AI Coding Assistant (Cosy) 代码提示
- String Manipulation 驼峰式命名和下划线命名交替变化
- JRebel 热部署
- MyBatis Log Plugin
- MyBatisCodeHelperPro
- Free Mybatis plugin
- Lombok 代码自动注入
- SequenceDiagram 生成简单序列图。
- SonarLint 代码检查
- CheckStyle 代码检查
- Vo2dto 对象转换
- show comment 展示备注信息
- .ignore 各类版本控制忽略文件生成工具
- Nyan progress bar 彩虹加载
- Save Actions 保存动作
- MetricsReloaded 方法统计,复杂度检查
- CSDN 博客插件
3.低频插件
- NEXchatgpt ai 工具
- IdeaJad 反编译插件
- VisualVM Launcher jvm 工具
- UML 生成类图
- MapStruct Support pojo 转换
- any-rule 正则表达式
- Indent Rainbow 彩色缩进
- MybatisLogFormat sql 格式化
- Database Tools and SQL 数据库管理工具
- Jclasslib Bytecode Viewer 查看字节码
- Git Flow Integration Git Flow 的图形界面操作
- MybatisX mybatis 框架辅助(免费)
- Lombok Lombok 功能辅助插件
- Alibaba Java Coding Guidelines 阿里巴巴出的代码规范检查插件
- gittoolbox git 插件
- lines sorter 插件 代码行数统计
- Jclasslib Bytecode Viewer 简介:看类的字节码文件。
- Free Mybatis Plugin 可以通过 mapper 接口里的方法跳转到 mapper.xml 里。
- IDEA QAPlug 帮助我们提前找到潜在的问题 bug
- Gitee 开源中国的码云插件
- IDE Features Trainer IntelliJ IDEA 官方出的学习辅助插件
- CheckStyle-IDEA 代码规范检查
- FindBugs-IDEA 潜在 Bug 检查
- MetricsReloaded 代码复杂度检查
- JRebel Plugin 热部署
- GsonFormat 把 JSON 字符串直接实例化成类
- Markdown Navigator 书写 Markdown 文章
- Eclipse Code Formatter 使用 Eclipse 的代码格式化风格
- Jindent-Source Code Formatter 自定义类变量注释模板
- Properties to YAML Converter 文本转换
- mongo4idea mongo 客户端
- iedis redis 客户端
- shortcut translate 快捷键翻译
- stackoverflow 堆栈分析
- leetcode 力扣插件
- Quick Notes 记事便利贴
- Sonar 代码检查
- Background Image Plus 背景图片
- Key promoter 快捷键提示
- Statistic 代码统计
- jclasslib Bytecode Viewer 字节码分析插件
- AiXcoder 人工智能代码编写
4.插件目录
idea 安装插件导致启动不了,先进入插件目录,删除新安装的插件
/Users/qinyingjie/Library/Application Support/JetBrains/IntelliJIdea2021.1/plugins
5.leetcode 插件
$!velocityTool.camelCaseName(${question.titleSlug})
package leetcode.editor.cn;
${question.content}
public class $!velocityTool.camelCaseName(${question.titleSlug}){
public static void main(String[] args) {
Solution solution = new $!velocityTool.camelCaseName(${question.titleSlug})().new Solution();
}
${question.code}
}
6.MetricsReloaded 使用
圈复杂度越高,代码就越难复杂难维护
- ev(G) 基本复杂度是用来衡量程序非结构化程度的,非结构成分降低了程序的质量,增加了代码的维护难度,使程序难于理解。因此,基本复杂度高意味着非结构化程度高,难以模块化和维护。实际上,消除了一个错误有时会引起其他的错误。
- iv(G) 模块设计复杂度是用来衡量模块判定结构,即模块和其他模块的调用关系。软件模块设计复杂度高意味模块耦合度高,这将导致模块难于隔离、维护和复用。模块设计复杂度是从模块流程图中移去那些不包含调用子模块的判定和循环结构后得出的圈复杂度,因此模块设计复杂度不能大于圈复杂度,通常是远小于圈复杂度。
- v(G) 是用来衡量一个模块判定结构的复杂程度,数量上表现为独立路径的条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,经验表明,程序的可能错误和高的圈复杂度有着很大关系。
7.正则表达式
- anyrule
- option + a
8.JSON 转 java 类
- 下载插件,安装插件 RoboPOJOGenerator;
- 生成类,在创建类的包上右键新建,选择 Generate POJO from JSON;
- 修改名字,更具需求,选择语言、框架、主类名称;
- 重复的手动修改
- 查看生成的类,如有重复生成,手动修改(StartLoc 与 EndLoc 创建一个就行);
9.vo2dto 使用
EmployeeDTO dto = new EmployeeDTO();
EmployeeVo vo=new EmployeeVo();
1.复制 EmployeeDTO dto
2.光标放到 EmployeeVo
10.彩虹括号
插件名称:Rainbow Brackets
五.实用功能
1.Diagrams
选中接口可以展示实现类
2.热部署
热部署用 build,或者 rebuild
<!--热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
3.列编辑
- option+鼠标方向拖动
- 如果不是对齐的,shift+option+鼠标左键
4.检查未使用的类变量方法
1.选择 Analyze:
选择 Analyze——》Run Inspection by Name... 或者使用快捷键 Ctrl+Alt+Shift+I
使用 Analyze 可以帮助分析未使用的方法,变量和类,帮助优化代码写法,删除不需要的代码
2.定位查找:
在弹框中输入:unused declaration
搜索未使用的声明,点击之后,等待系统分析结果.
3.选定范围:
范围选择整个项目,维度为类,字段,方法,参数,变量等.
4.查询结果:
等待下方读条结束会自动弹出 Inspection Results 弹窗
查看分析的结果,为未使用的类,方法,变量,可以进行删除,或者其他操作
5.结果处理:
对没有用到的方法和变量提供了四种处理方法
四种处理方式
- Safe delete:删除;
- Comment out:注释掉;
- Add as Entry Point:添加为入口点;
- Suppress:添加注解 @SuppressWarnings("unused") 或 @SuppressWarnings("ALL");
5.Postfix Completion
- var 创建局部变量
- new 创建对象
- null 判断为 null
- nn 判断不等于 null
- if 判断是否为 true
- return 返回值
- itar for 循环
- iter 增强 for 循环
自定义postfix:
List<$EXPR$> $END$ = new ArrayList();
6.Find Usages
- 可以一键查看使用地方
- 可以展开或者折叠
- 可以预览查询到的结果
- 可以点击上一个,下一个
7.查询字段使用位置
获取所有位置,包括子目录下面的使用的地方
8.自定义保存日志
9.文件对比
只展示不限同的点,相同的点自动影藏
10.匿名转具名
匿名内部类 -> 带名字内部类
11.搜索 git 记录
12.方法被用到的地方
- option+7
- option+F7
13.生成测试方法
- control+shift+T
- 或者直接用 apifox 插件更方便
14.查看快捷键文档
Keymap Reference
15.json2java
安装插件:
json字符串转java实体类:
- 使用的地方有,知道 json 字符串,希望转为 java 类
六.debug
1.指定条件
- 点击断点
- 在输入框的 condition 输入条件
- i=99 或者 i==99 都可以
2.stream 进行 debug
3.跳转指定行
点击行号,跳转到指定行
4.debug 回退
- c12 表示 c 方法的 第 12 行
- 点击右键,点击 drop frame,可以回到 c 方法的调用处
5.多线程调试
suspend:暂停,挂起
- all:所有线程
- thread:当前线程
手动切换:
线程状态:
6.源码断点
- 点击 more,出现设置页面
- Evaluate and log:打印日志
7.检测某个值
add to watches 将某个值加入到一直检测
8.下一行
9.下一个断点
10.挂起断点
control+鼠标左键
11.详细断点
- shift+鼠标左键
- 黄色断点不会断,红色断点才会断
12.方法断点
在接口的方法上打断点,会自动停到实现类上面去
13.打开断点面板
14.异常断点
15.字段断点
有写有操作就会在操作的地方进行断点调试
16.条件断点
17.堆栈信息
18.表达式计算
19.后面的代码不执行
20.快速到断点停顿的地方
21.方法跳入跳出
22.跳到光标
七.常见问题
1.编译版本为 5
解决办法:在父 pom 中加入下列代码
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
2.底部不显示 commit
3.底部不显示分支
4.不显示 project 视图
IDEA 不显示项目 project 视图
问题:
从 git 上下载的项目 maven+spring 项目 IDEA 不显示项目 project 视图
解决方案:
关掉项目,删除 “.idea” 目录,重新 file-open 项目
5.取消换行
使用空格代替\n,替换掉换行
6.添加启动参数
--spring.profiles.active=dev --server.port=8090
7.设置忽略文件
8.查找子文件内容
9.利用 idea 发请求
POST http://localhost:9341/billInfo/insertOrUpdate
Content-Type: application/json
{"ownerNumber":"C02184540","ownerName":"黄美翰的导入门店","ownerMarketAreaId":11995,"ownerType":5,"supplierNumber":"C80095701","supplierName":"明亮邮差一","supplierType":4,"billGoodsInfoList":[{"id":1,"name":"由柑柠檬555ml(1×24瓶)","number":"CAT001","outNumber":null,"innerNumber":"CAT001","stand":"555ml(1×24瓶)","typeNumber":"037","singleUnit":"瓶","batchUnit":"箱","batchCount":1,"converseRule":24,"teuCount":null,"revCoefficien":1,"costCoefficien":null,"remark":null,"status":1,"createTime":1573457010000,"updateBy":null,"updateTime":1586504080000,"bigUnitCount":2,"smallUnitCount":0,"checked":true,"giftList":[{"name":"由柑柠檬555ml(1×24瓶)","number":"CAT001","type":1,"bigUnitCount":4,"smallUnitCount":0}],"price":0,"totalMoney":"0.00"},{"id":2,"name":"金罐250ml(1×24罐)","number":"CAT002","outNumber":null,"innerNumber":"CAT002","stand":"250ml(1×24罐)","typeNumber":"002","singleUnit":"罐","batchUnit":"箱","batchCount":1,"converseRule":24,"teuCount":null,"revCoefficien":0.72,"costCoefficien":null,"remark":null,"status":1,"createTime":1573457010000,"updateBy":null,"updateTime":1586504080000,"bigUnitCount":3,"smallUnitCount":0,"checked":true,"giftList":[{"name":"金罐250ml(1×24罐)","number":"CAT002","type":1,"bigUnitCount":3,"smallUnitCount":3}],"price":0,"totalMoney":"0.00"}],"sumMoney":"0.00","bigUnitCount":5,"smallUnitCount":0,"isCheck":0,"billType":2,"createBy":7422,"createByName":"黄美翰","createByMarketAreaId":11996,"dealAddress":"明亮科技园们门口","message":"1","giftBigUnitCount":7,"giftSmallUnitCount":3}
<> 2020-10-26T074045.200.json
添加环境:
{
"dev": {
"host": "localhost",
"port": "8888"
}
}
快速创建post请求:
指定环境运行: