高效使用IDEA
熟练使用以下技巧后不用鼠标也可体验到丝滑的IDEA,编码速度有质的飞跃。
蓝色为高频功能。
搜索帮助
IDEA中提供了非常强大的搜索帮助,仅需要一些英文关键词就可以知道你要的帮助内容并给出快捷键
ctrl+shift+a搜索帮助
帮助.gif
跳转&切换
显示最近打开文件
ctrl+e显示最近打开的文件
1.gif
显示最近编辑的文件
ctrl+shift+e显示最近编辑的文件
1.gif
切换到上次编辑的位置
ctrl+shift+backspace切换到上次编辑的位置
1.gif
切换到上次浏览的位置
ctrl+alt+⬅/➡切换到上次浏览的位置
1.gif
左右切换选项卡
alt+⬅/➡左右切换选项卡
左右切换选项卡.gif
编辑区与project区来回切换
alt+1从编辑区切换到project区esc或重按alt+1从project区切换到编辑区
1.gif
列出当前类方法集合
ctrl+F12列出当前类方法集合
查看方法.gif
列出当前类依赖关系
ctrl+shift+alt+u
类关系图.gif
列出方法调用层次
ctrl+h列出方法调用层次
搜索&查找
查找类
ctrl+n查找项目中的类,查找时再按一次则是查找包含项目外的类
定位类.gif
查找文件
ctrl+shift+n查找项目中的文件,查找时再按一次则是查找包含项目外的文件
定位文件.gif
查找方法&属性
ctrl+shift+alt+n查找项目中的方法&属性,查找时再按一次则是查找包含项目外的方法&属性
定位方法或属性.gif
查找字符串
ctrl+shift+f查找字符串
定位字符串.gif
文本操作
大小写转换
ctrl+shift+u大小写转换
光标移动
Home/End移动光标到行头/行尾
移动光标到行头.gif ctrl+Home/ctrl+End移动光标到文件头头/文件尾
移动光标到文件头头或文件尾.gif
https://zhangxin-blog.oss-cn-beijing.aliyuncs.com/blog/g/idea/%E7%A7%BB%E5%8A%A8%E5%85%89%E6%A0%87%E5%88%B0%E6%96%87%E4%BB%B6%E5%A4%B4%E5%A4%B4%E6%88%96%E6%96%87%E4%BB%B6%E5%B0%BE-345e6c03.gif
ctrl+⬅/➡移动光标到下/上一个单词
移动光标到下或上一个单词.gif
选择文本
shift+Home/shift+End选择从光标到行头/行尾
选择光标到行头.gif CTRL+SHIFT+END/CTRL+SHIFT+HOME选择从光标到文件头/文件尾ctrl+shift+⬅/➡选择从光标到下/上一个单词
选择光标到下或上一个单词.gif ctrl+w选择光标处单词
选择光标处单词.gif ctrl+insert选择当前行
选择当前行.gif alt+a全选alt+j选择相逐个同字符
逐个选择相同单词.gif ctrl+shift+alt+j在每行选择相同字符
在每行选择相同字符.gif
编辑文本
shift+enter在光标处插入新的行
在光标处插入新的行.gif Ctrl+X删除/剪切光标所在行
删除光标所在行.gif Ctrl+D复制光标所在行
复制光标所在行.gif Shift+Ctrl+上下键移动光标所在行
移动光标所在行.gif
快速编码
智能提示
Alt+enter智能提示,智能提示/修复的功能异常强大,这里只介绍了一点。
智能提示.gif
生成get,set方法
Alt+insert生成get,set方法
生成getset方法.gif
格式化代码
Ctrl+Alt+L格式化代码
格式化代码.gif
方法参数提示
ctrl + p方法参数提示
方法参数提示.gif
运行当前类
ctrl+shift+F10运行当前类
运行类.gif
变量更名
shift+F6
变量重构.gif
方法抽取
ctrl+alt+m方法抽取
方法抽取.gif
调出粘贴板
ctrl+shift+v调出粘贴板
DEBUG
添加断点
ctrl+f8添加断点
添加条件断点
ctrl+shift+f8添加条件断点
debug运行
shift+f9debug运行
表达式求值
alt+F8表达式求值
版本控制
后悔药之Local History
Local History 是IDEA自带的版本记录工具,文件的每一次修改都会记录在 Local History 中

本地后悔药.gif
找到谁背锅(查看谁写的这行代码)

查看本次修改的位置
ctrl+shift+alt+↑/↓查看本次修改的位置
修改位置.gif
live template 代码模板
将较为常用的代码制作成模板,熟练使用后针对一些重复性高的代码,编码速度有质的飞跃
示例

代码模板.gif 制作作者:alonwang 链接:https://www.jianshu.com/p/3974df6572af
live template是一个预定义的代码模板,其中的内容能够根据上下文信息自动推断.
首先放下效果图
demonstrate.gif
相对于手动打出整块代码,很简洁有没有?如果这种毫无技术含量的代码都通过live template 来自动生成,有下面两个好处1. 有更多的时间关注于业务逻辑,核心代码可以更优雅2. 减少低级错误出现的可能,之前手写拼错和括号错位真是血和泪的教训
笔者很早之前就注意到这个功能,也查看过官方文档和博客,都不能尽如人意.本文会以上面为例,从头到尾完成一个live template,并介绍其大部分功能
一个完整的示范
新建一个live template

img image.png
填写缩写和说明

img
这样使用时如果输入了对应的缩写,会有如下的提示

image.png
设置模板的作用范围
刚创建模板时idea应该会提示设置作用范围,我这里是已经设置过了,所以提示更改, 这里应该相差不大
img 这里我只勾选了在表达式和语句时输入会触发, 其他情况下不会触发.例如在方法外输入unq,ide不会给任何提示

img 设置模板
live template中模板变量使用$包裹的,并且是可复用的,下面的模板就是将会变动的字段提取为变量
Object result = $CACHE_NAME$.get(String.valueOf($PARAMETER$),
x -> getSession().createCriteria($RETURN_TYPE$.class)
.add(Restrictions.eq("$END$$PARAMETER$", $PARAMETER$)).setMaxResults(1)
.uniqueResult());
return result == null ? null : ($RETURN_TYPE$) result;
设置强大的
预定义函数关于预定义函数参见
官方文档
进入编辑变量页面,对变量设置需要的函数(
这里很坑,我还以为是在模板里直接使用预定义函数,结果是预定义函数要附在变量上),个人认为这个功能
很强大
img 这里可以调整变量的填充顺序,设置需要的预定义函数,这里就简单介绍下用到的两个函数
complete() 光标跳转到该变量位置时会打开智能补全,不确定要用什么就用它
methodReturnType() 使用当前方法的返回类型设置当前变量

img
$END$是特殊的预定义变量,表示模板结束后的光标位置idea有很多预定义的live template.很值得参考
postfix IDEA内置模板
IDEA内置了许多高效的模板,常用的如下
image.png
for循环
.fori
fori.gif if 判断
.if
if.gif 输出
.sout
sout.gif
其他
鼠标滑轮调节文字大小
Settings>Editor>General>勾选change font size (zoom) whith ctrl+mouse wheet

放大缩小文字.gif
插件
lombok
translation(翻译插件)
Rainbow Brackets(彩虹括号)
RestfulToolKit( Restful api 列表~~~~)
Free Mybatis plugin (mapper与接口)
标题:高效使用IDEA
原文作者:zhaojishun
地址:http://blog.zhaojishun.cn/articles/2020/01/27/1580092173752.html
