主要内容:
- 类注释模板
- Live Templates
- 内置快捷键
- 自定义快捷键
- Postfix Completion
- 内置快捷键
- 自定义快捷键
- 实用快捷键
IDEA的设置分为全局设置和当前工程设置。
如果你希望当前设置作用于所有项目,请使用:
如果你当前设置仅作用于当前项目,请使用:
类注释模板
一般来说,注释信息的生成其实已经很方便了,输入/**回车即可出现文档注释:
但是,类注释信息中@author等信息是通用的,可以抽取出来自动生成。IDEA允许我们根据需要定制这类文档注释模板。由于一般也就只用Class、Interface、Enum、AnnotationType,所以我自己也就给这4个加了模板:
/**
* @author bravo
* @since ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
*/
Live Templates
内置快捷键
开始进入重点。先来看看IDEA已经提供的快捷键。打开IDEA的preferences,搜索live templates:
IDEA本身可以用来开发各种编程语言,所以它的快捷键模板非常全面。这里我们只关注和Java有关的。
遍历
顾名思义,就是和遍历有关的快捷操作。
fori(正序)
截图中有两处不规范:
- 测试类应该叫XxxTest,以Test结尾
- 测试方法应该叫testXxx,以test开头
forr(倒序,r表示reverse)
上面说的是List,数组同理:
其他
main
psf
建议左手小拇指按住shift输入大写字母,而不是切换大写。
ifn
sout
thr
IDEA在Live Templates提供的快捷键还不少,其他的大家可以自己去看看,动手试试:
主要关注iterations、other、output、plain即可。注意,不要企图都背下来,选几个自己觉得常用的背下来即可。快捷键只是工具,不是目的,不要为了炫技而炫技,舍本逐末。
自定义快捷键
可以看出,快捷键确实能大大加快我们的开发速度,但是IDEA提供的快捷键不一定满足我们的需求,此时可以自定义Live Template。
自定义的规则
测试:
但是,我希望先写好变量,再去写注释,怎么调整光标的顺序呢?
再次测试 :
但写得再快也不如自动生成。后面我们会介绍MyBatis Generator,简化初期构建项目时繁琐的POJO编写过程。
我的模板
这里展示一下我自定义的一些模板,仅作为启发思路,大家不一定要和我一样配置,有些快捷键其实反而会碍事。
@GET
$END$
@GetMapping("$PATH$")
public $RESULT$ get$METHOD_NAME$($PARAM$) {
}
@POST
$END$
@PostMapping("$PATH$")
public $RESULT$ $METHOD_NAME$($PARAM$) {
}
说句实话,实际开发还是复制已有的Controller方法改一改是最快的。
字段注释
/**
* $COMMENT$
*/
private Integer $VAR$;
$END$
@SBTEST
tst
判断集合非空
if ($LIST$ != null && $LIST$.size() > 0) {
$END$
}
当然,判断集合非空最好用工具类,比如:
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
try-with-resource
Java7提供的自动关闭资源的方式
try (
// 在这声明资源,多个语句用;隔开,最后一个可以不写
$END$
) {
// 在这使用资源
} catch (IOException e) {
e.printStackTrace();
}
Postfix Completion
对比一下IDEA提供的快捷键和我们自定义的快捷键:
你会发现:IDEA内置的fori快捷键可以以foo.fori这种后缀的方式触发,而我们自定义的不行!
其实不是不行,而是我们没定义。
正确来说,其实IDEA提供了两套自定义快捷键的方式,除了Live Templates,还有Postfix Completion:
而之所以能使用list.fori,是因为IDEA在Postfix Completion里也定义过for了:
也就是说IDEA有两套快捷键模板(Live Templates && Postfix Completion),而fori在两套模板中均有定义:
Live Templates Vs Postfix Completion
我们来对比一下IDEA在Live Templates定义的fori和在Postfix Completion定义的fori:
Postfix Completion的自动化更彻底(相对地,牺牲了一部分机动性)。
自定义的规则
另外,有个微不足道的小建议,不要用IDEA自带的fori,自己定义一个foribravo:
这个写法优于IDEA自带的fori,因为循环中list.size()方法只会被调用一次:
其他的大家自己摸索。老实说,规则太多反而记不住,大家根据自己的编码习惯,先记几个常用的即可。而且Postfix Completion里已经有很多好用的快捷键了,有时没事打开看看,能记几个是几个。
实用快捷键
平时没事可以打开上面的面板看看,都有快捷键提示的:
由于忘了windows的快捷键是啥,这里只能演示mac的。反正mac的command、option啥的也是类似windows的control、alt,大家自己试试看,或者百度一下。
部分快捷键之所以加fn,是因为我的mac带touch bar,如果你的是物理按键,不用加fn。
command+,:调出设置面板(可能是control+alt+s)
不要勾选:启动时不会自动进入上次的项目,而是显示列表
善用搜索框:
command+1调出/关闭project目录,左右方向键展开/关闭package,enter打开文件,command+w关闭文件
command+1展开project, command+N创建文件,选中文件后back键删除文件
command+5调出debug控制台, command+7调出当前类的类结构, shift+fn+command+f8查看断点
(重复command+number会关闭)
control+option+N在当前文件所在目录新建文件
command+E:调出最近操作的文件
command+shift+E:展示最近修改记录,可点击跳转代码片段
option+command+左右箭头:在最近编辑的文件间跳转
command+p:提示方法形参
command+shift+enter快速结束语句并加上分号(windows:ctrl+shift+enter):
option+enter快速实现接口:
但你会发现,在接口中虽然写了方法注释,但实现类里是没有的。怎么才能把接口方法的注释带到实现类里呢?
但上面的方式有个麻烦的地方:每次都要把鼠标移到类名上触发implements。其实可以直接在接口方法上触发:
但它有个缺点,方法注释又没了…有同学知道更好的方法请告诉我~
上面介绍的是如何写接口文档,那么如何查看接口文档呢?
option+command+点击,直接跳转接口实现类:
option+command+M抽取方法:
option+command+T,try catch必备:
再说一个引入Maven依赖的技巧。搭建SpringBoot项目一般都是直接拷贝旧项目,但如果临时有个依赖需要引入,切换到别的项目拷贝有点麻烦,此时可以利用IDEA的快捷键快速导入依赖。
在Pom.xml中command+N:
如果SpringBoot有版本约束,就选择与当前SpringBoot版本匹配的即可:
自动导包、自动删除无用包:
如果不勾选第二个选项,我们只能手动删除(windows快捷键我忘了),很麻烦,而且按我的工作经验,如果不及时清理无用的import,提交代码有时会报错。
快捷键手动删除无用包(control+option+o,windows应该是ctrl+alt+o):
自动删除无用包(不会立即删除,而是有其他输入动作时清理,比如gif图中我随意删除了几个空行触发清理):
不建议开启Maven自动导入依赖,万一发现不是自己要的版本,你如果中途退出,会导致当前jar包下载不完整。
还是手动确认导包比较好(个人建议):
手动确认:
双击shift,默认只搜索项目代码,若希望同时搜索Spring或JDK源码,记得勾选”Include non-project items”:
command+shift+F全局搜索:
command+shift+R全局替换(慎用):
一般的文本替换,你可以用command+R(当前文件)或者command+shift+R(全局替换,慎重)
但是如果你要更改类名、方法名啥的,建议使用专门的快捷键。
类名修改:
方法名修改:
这种专门的快捷键有个好处,变量名也会帮你替换,比如:
UsrePojo usrePojo —-> UserPojo userPojo
变量名修改(fn+shift+F6):
一键导出设置
如果后期换电脑了,可以一键导出设置,然后重新导入新的IDEA。插件需要重新安装。