1、快捷键
psvm:生成main()方法
fori:生成for循环
Ctrl+Alt+v:自动补齐返回值类型 | 或者在那个类后面使用模版: .psvm
ctrl+o:覆写方法
Ctrl+Alt+L:格式化代码
ctrl+i:实现接口中的方法
Alt+Insert:生成构造方法getter、setter
Ctrl+R:替换字符串
ctrl+X:剪切当前行
ctrl+p:方法名提示
Ctrl+D:在下行复制当前行内容
格式化import列表:Ctrl+Alt+O
ctrl+shift+alt:多行操作
ctrl+shift+u:大小写转换
CTRL+SHIFT+Z:取消撤销
ctrl+y:删除当前行
Ctrl+Shift+J:将选中的行合并成一行
ctrl+g:定位到某一行
Ctrl+Shitft+向下箭头:将光标所在的代码块向下整体移动
Ctrl+Shift+向上箭头:将光标所在的代码块向上整体移动
Alt+Shift+向下箭头:将行向下移动
Alt+Shift+向上箭头:将行向上移动
Ctrl+F:在当前文件中查找
Ctrl+Shift+F:在全局文件中查找字符串
Ctrl+Shift+R:在全局中替换字符串
Ctrl+Shift+Enter:自动补齐{}或者分号
Shift+Enter:在当前行的下方开始新行
Ctrl+Alt+Enter:在当前行的上方插入新行
Ctrl+Delete:删除光标所在至单词结尾处的所有字符
Ctrl+,(逗号) :打开设置面板
Ctrl+滚轮:画面字体缩放(需要一定设置)
2、插件
注意:插件装多了运行程序也就越大,有可能idea会出现卡顿
名称 | 描述 | 链接 |
---|---|---|
Chinese (Simplified) Language Pack | idea官方中文插件 | Chinese (Simplified) Language Pack |
Translation | 翻译插件 | Translation |
MavenHelper | 查看Maven的依赖冲突 | MavenHelper |
maven-search | 快速查找maven依赖,定制模糊查找算法。支持查找全网类 | maven-search |
Mybatis X | MybatisX 是一款专为 IntelliJ IDEA 设计的快速开发插件,旨在提升 MyBatis 与 MyBatis-Plus 框架的开发效率。 | MyBatis-Plus |
2.1、基础插件
1.Chinese Language Pack:中文主题
idea官方中文插件
安装方法:直接插件搜索安装即可
2.Translation:翻译
安装方法:直接插件搜索安装即可
使用方法:
- ctry+shift+y可以一键翻译
- 右上角图标可以手动翻译,用来规范命名
3.Maven Halper:解决maven冲突
安装方法:直接插件搜索安装即可
使用方法:
- 当我们打开pom文件的时候,下面会出现Dependency Analyzer,点击它, 就可以找到出现冲突的包,在包名上面右键,点击Exclude可以排除该依赖
- 本质就是在dependency中引入exclusion标签取出该依赖
2.2、代码插件
1、GsonFormat:json格式整理
已替换为utools的json格式化插件
安装方法:直接插件搜索安装即可
使用方法:上面一排,选择代码(code),点击GsonFormat即可
还有个方法就是创建一个json文件,点击ctrl+alt+L格式化。但是这个快捷键可能和一些软件有冲突,下面提供一个修改idea快捷键的方法!
2、properties和YAML相互转换
已替换为 IT - Tools 的转换工具
名称:Properties to YAML Converter
安装方法:直接插件搜索安装即可
使用方法:右键那个文件,点击转换就行
3、MybatisX 自动完成Mapper接口和Mapper文件跳转
安装方法:直接插件搜索安装即可
- 生成mapper xml文件
- 快速从代码跳转到mapper及从mapper返回代码
- mybatis自动补全及语法错误提示
- 集成mybatis generator gui界面
- 根据数据库注解,生成swagger model注解
2.3、UI插件
1.Material Theme UI:美化界面
安装方法:直接插件搜索安装即可
该主题比较消耗资源,倘若使用该插件较卡顿,可单独使用Atom Material Icons图标插件美化
2.Atom Material Icons:文件图标美化
Material Theme UI一家插件,让文件夹这些的图标变好看
安装方法:直接插件搜索即可
3.Rainbow Brackets:彩虹括号
安装方法:直接插件搜索安装即可
好看易用
4.阿里云智能编码插件(Alibaba Cloud AI Coding Assistant)
3、自定义代码模版
代码模版有两种,固定模版和实时模版
- 固定模版就是你创建文件的时候就会生成,比如你点击创建一个java类,这个时候就会根据模版生成注释和导入包路径等等
- 实时模版就是你通过某一些特定的编码,实时的生成你所需的代码。比如常用的
main/pasvm
就会生成主启动类方法
3.1、固定模版
如下图所示,设置 -> 编辑器 -> 文件和代码模版
就可以进入固定模版编辑地方。
文件代码和模板会在创建文件的时候使用,比如在idea中创建一个类,会自动导入类名和包名。我们可以在这个基础上,生成注释。
使用右下角描述中的一些值,来动态的生成一些参数,会在该文件创建的时候弹框输入。
在Class类中定义了注解内容,当我们创建一个java类的时候就会自动的给我们生成了。
/**
* @author: 王富贵
* @createTime: ${YEAR}年${MONTH}月${DAY}日 ${HOUR}:${MINUTE}:${SECOND}
* @description: ${description}
*/
3.2、实时模版
实时模版就是我们在代码编写的时候去赋予某个字符串(通常是缩写)模版意义,就可以通过idea的只能提示插件给他生成出来。如下图所示:
如下图所示,设置 -> 编辑器 -> 实时模版
就可以进入实时模版编辑地方。
我们可以创建一个模版组,或者对某个模版组下创建一个模版,创建页面如下所示。
- 缩写:缩写就是字符串缩写,当你打出对于字符串或者相近字符串的时候,idea会进行代码提示。
- 描述:对这个实时模版的描述,idea也会对其相应的提示
- 编辑变量:我们能够对模版里面使用
$$
符号包裹的动态变量进行脚本的编写 - 更改:左下角有个更改按钮,他会限定某个特定的文件里面才会出现提示,比如我们选择java,则会在java环境中才会出现对应的提示
3.2.1、定义实时模版
我们回顾一下定义实时模版的过程
- 编写实时模版,缩写、描述、模版文本等
- 编辑变量
- 设置实时模版的应用范围
1.编写模版
如图所示,我们就编写一个注释模版,定义了以上内容
2.编辑变量
我们点击编辑变量,能够对我们动态的变量编写表达式,动态进行赋值
如上图所示,我们能够对变量进行表达式的赋值。当然我们使用了最简单的表达式,字面上就能够理解,data()
标识获取当前日期, time
表示获取更多时间。
当然你可以可以点击问号,或者点击我的链接查看:官方文档
变量编辑技巧:
1、一个变量用在俩个地方,会进行同步变动
2、表达式非常强,可以写groovy脚本
3、$CONDITION$ 表示创建表达式后的输入,回车之后会跳转至 $END$
4、$END$ 当输入完成之后,按回车,会默认调至此处
3.设置实时模版的应用范围
如果我们没有设置应用方位,那么在任何文件中都不会出现和提示你定义的实时模版。如下图所示,我们是应用于java的实时模版,所以我勾选了java框,他能在我们编写java代码的时候给出对应的提示。
3.2.2、我的模版
除了上面的注解模版之后,我还定义了以下几个模版
1、快速生成lambda表达式
缩写:lam
描述:快速生成lambda表达式
模版文本:
($CONDITION$) -> {$END$}
tips: $END$
表示生成后鼠标放置的位置
2、lambda输出表达式
缩写:sop
描述:lambda表达式sporintln输出
模版文本:
System.out::println
3、注释
缩写:zs
描述:注释模版
模版文本:
/**
* @author 王富贵
* @createTime $date$ $time$
* $description$
*/
模版变量:
名称 | 表达式 | 默认值 | 如果定义则跳过 |
---|---|---|---|
date | date() | yes | |
time | time() | yes |
3.2.2.1、java日志模版组
同样,我也定义了一个模版组,用于java中日志的输出。
1、普通日志
缩写:li
描述:普通日志输出(log info)
模版文本:
log.info("$content$");$END$
2、debug日志
缩写:ld
描述:dbug日志(log debug)
模版文本:
if(log.isDebugEnabled()){
log.debug("$CONDITION$");
$END$
}
debug日志需要判断是否开启dbug
3、错误日志
缩写:le
描述:错误日志(log error)
模版文本:
log.error("$CONDITION$");$END$
4、携带方法名和方法入参的日志
缩写:lii
描述:携带方法名和方法入参的日志(log info in)
模版文本:
log.info($CONDITION$);
模版变量:
名称 | 表达式 | 默认值 | 如果定义则跳过 |
---|---|---|---|
CONDITION | groovyScript("def params = _2.collect{it + '= {} '}.join(',');def paramss = _2.collect{it}.join(' , ');return '\"' + _1 + '() called with params => \[ ' + params + '\]\" \, ' + paramss",methodName(),methodParameters()) | yes |
我们使用了groovy脚本用于动态生成请求参数
5、携带响应的日志
缩写:lio
描述:携带响应的日志,通常用在接口结束(log info out)
模版文本:
log.info("$METHOD_NAME$() returned => [{}]",$result$);
模版变量:
名称 | 表达式 | 默认值 | 如果定义则跳过 |
---|---|---|---|
METHOD_NAME | methodName() | yes | |
result |
3.2.3、官方模版
实际上,官方也会提供很多实时模版,我们可能也会经常用。我们也可以在设置中经常看一看,idea官方提供了哪些实时模版。
3.2.3.1、生成前缀
1、 psv
public static final
2、 psfi
public static final int
3、 psfs
public static final String
4、 main
| psvm
:生成主方法main
public static void main(String[] args) {
}
3.2.3.2、生成语句
1、 fori
:生成循环
for (int i = 0; i < ; i++) {
}
2、 integers.for
:使用定义的容器生成增强循环
List<Integer> integers = List.of(1, 2, 3, 4);
for (Integer integer : integers) {
}
3、 ifn
: 判为空(if null的意思)
Integer arr = null;
if (arr == null) {
}
4、 inn
判空
Integer arr = null;
if (arr != null) {
}
3.2.4、后缀补全
1、.var
:补全对象创建
new User().var
==》
User user = new User();
2、 s.for
:使用定义s生成循环
Integer s = 10;
// s.for
for (Integer i = 0; i < s; i++) {
}
评论区