(Java)IntelliJ IDEA 2021.1使用技巧、常用快捷键大全(win+mac)
目录
- 二、配置、使用技巧、常用快捷键
- 2.1 常用的快捷键总结
- 2.1.1 MAC中IntelliJ IDEA快捷键
- 2.2 实时代码模板
- 2.3 inject language
- 2.4 批量修改
- 2.5 symbol,模糊查找,只记得某几个字母
- 2.6 自动生成not null判断语句
- 2.7 本地历史版本
- 2.8 代码调试
- 2.9 各种插件
- 三、使用要求
- 3.1 不允许出现魔法值
二、配置、使用技巧、常用快捷键
推荐下文的基本配置和快捷键总结
,另外编码效率方面讲的也十分不错。
常用的配置可见:配置
IEDA各种功能介绍和使用讲解
IntelliJ IDEA神器使用小技巧
2.1 常用的快捷键总结
快捷键大全
查找替换搜索 | 介绍 |
---|---|
Ctrl + F |
当前文件中文本查找 (必备)
|
Ctrl + R |
当前文件中文本替换 (必备)
|
Ctrl + shift + F |
根据输入内容查找整个项目 或 指定目录内文件 (必备)
|
Ctrl + shift + R |
根据输入内容替换对应内容,范围为整个项目 或 指定目录内文件 (必备)
|
shift + shift | 快速搜索 |
代码编写 | 介绍 |
---|---|
Ctrl + W |
递进式选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展选中范围 (必备)
|
Ctrl + D |
复制光标所在行 或 复制选择内容,并把复制内容插入光标位置下面 (必备)
|
Ctrl + / |
注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号 (必备)
|
Ctrl + shift + enter | 代码自动补全,自动结束代码,行末自动添加分号,或者在输入if等语法后自动添加花括号(必备)` |
Alt + Enter
|
IntelliJ IDEA 根据光标所在问题,提供快速修复选择,光标放在的位置不同提示的结果也不同 ,例如根据当前行代码创建还未定义的函数(必备)
|
Alt + Shift + 鼠标点击 |
多行光标(必备)
|
shift + enter |
行中回车,开辟下一行(必备)
|
Ctrl + Alt + L |
格式化代码,可以对当前文件和整个包目录使用 (必备)
|
Ctrl + Alt + O |
优化导入的类,可以对当前文件和整个包目录使用 (必备)
|
Ctrl + Alt + 左方向键 |
退回到上一个操作的地方 (必备)
|
Ctrl + Alt + 右方向键 |
前进到上一个操作的地方 (必备)
|
Ctrl + Shift + J |
自动将下一行合并到当前行末尾 (必备)
|
Ctrl + Shift + Z |
取消撤销 (必备)
|
Ctrl + Shift + W |
递进式取消选择代码块。可选中光标所在的单词或段落,连续按会在原有选中的基础上再扩展取消选中范围 (必备)
|
Ctrl + Shift + N |
通过文件名定位 / 打开文件 / 目录,打开目录需要在输入的内容后面多加一个正斜杠 (必备)
|
Ctrl + Shift + U |
对选中的代码进行大 / 小写轮流转换 (必备)
|
Ctrl + Shift + P |
代码智能提示 (必备)
|
Ctrl + P |
方法参数提示显示 (必备)
|
Ctrl + Shift + / |
代码块注释 (必备)
|
F2 |
跳转到下一个高亮错误 或 警告位置 (必备)
|
F11 |
添加书签(必备)
|
Ctrl + shift + L |
格式化代码(必备)
|
shift + F6 |
快速修改方法签名(必备)
|
ESC | 从工具窗口进入代码文件窗口 |
Home | 快速移动光标到行首 |
End |
快速移动光标到行尾 (必备)
|
Alt + Shift + 前方向键 |
移动光标所在行向上移动 (必备)
|
Alt + Shift + 后方向键 | 移动光标所在行向下移动 |
Shift + Tab | 取消缩进 |
Ctrl + alt + 左右 |
跳转历史光标所在处 (必备)
|
alt + 左右 | 切换子tab |
Ctrl + Y | 删除整行 |
Ctrl + B | 进入光标所在的方法/变量的接口或是定义出,等效于 Ctrl + 左键单击 |
Ctrl + Z、Ctrl + shift + Z | 撤销与取消撤销 |
alt + insert |
代码自动生成,如对象的set / get方法,构造函数,toString() 等 (必备)
|
Ctrl + alt + T
|
代码包裹功能,快速将选中的代码块包裹到选择的语句块中(if,while等 ) (必备)
|
调试 | 介绍 |
---|---|
Shift + F10 |
等效于点击工具栏的 Run 按钮,程序为上次运行的程序 (必备)`
|
Ctrl + Shift + F10 |
在当前程序, Run 按钮 (必备)
|
Shift + F7 | 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法 |
Shift + F8 | 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样 |
Shift + F9 | 等效于点击工具栏的 Debug 按钮 |
F7 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 |
F8 | 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 |
F9 | 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 |
F12 |
回到前一个工具窗口,比如跳转到run界面 (必备)
|
ESC | 从工具窗口进入代码文件窗口 |
其它 | 介绍 |
---|---|
Ctrl + D | show Diff |
Alt + 7 |
显示structure窗口,方便查看类中的方法结构(推荐)
|
2.1.1 MAC中IntelliJ IDEA快捷键
快捷键组合(编码相关) | 快捷键作用 |
---|---|
command+C | 复制 |
command+X | 删除一行/剪切 |
command+delete | 删除行 |
command+V | 粘贴 |
command+D | 复制上一行 |
command+E | 打开recent Files |
command+W | 关闭当前类窗口 |
comand+K | 打开commit,可按需选择提交的文件 |
command+O | 查找打开类文件 |
command+F | 当前文本查找(可上下键切换) |
command+⇧+F | 全局查找 |
command+R | 当前文本替换 |
command+⇧+R | 全局替换 |
alt+上下 | 扩展选择 |
command+N | 生产代码 getter、setter等等 |
command+P | 显示方法的详细参数 |
command+S | 保存 |
command+Z | 撤销一步 |
command+G | 定位,配合查找使用更方便 |
command+/(注意输入法要在英文状态) | 注释/解除注释 |
control+⇧+/(注意输入法要在英文状态) | 注释:/**/ |
command+option(alt)+L | 格式化代码 |
control+空格(注意默认冲突) | 代码补全 |
control+option+空格(注意默认冲突) | 智能代码补全 |
control+option+O | 去除无效import |
Command+Option+方向键左 / 右 | 退回 / 前进到上一个操作的地方 |
command+鼠标悬停,点击 | 查看方法说明,进入方法 |
command/alt+shift+上下 | 代码上下移动行 |
Command + alt + T |
代码包裹功能,快速将选中的代码块包裹到选择的语句块中(if,while等) (必备)
|
快捷键组合(工具相关)
快捷键组合(工具相关) | 作用 |
---|---|
command+, | 打开preferences |
command+回车(选择工程) | 打开resource |
⇧+F6 |
重命名(按F几的同时需要按左下fn)
|
⇧+F9 | 编译当前工程 |
Control + R | 运行工程 |
Control + D | debug工程 |
快捷键组合(调试相关)
快捷键组合(调试相关) | 作用 |
---|---|
F8 | 进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 |
F7 | 进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 |
Shift + F7 | 智能步入,断点所在行上有多个方法调用,会弹出进入哪个方法 |
Option + F9 | 运行到光标处,如果光标前有其他断点会进入到该断点 |
Command + Option + R | 恢复程序运行,如果该断点下面代码还有断点则停在下一个断点上 |
Command + F8 | 切换断点(若光标当前行有断点则取消断点,没有则加上断点) |
Command + Shift + F8 | 查看断点信息 |
2.2 实时代码模板
这个太好用了。Settings——Editor——Live Templates中可以看到
常用的有,持续记录更新:
输入 | 效果 |
---|---|
sout | System.out.println() |
2.3 inject language
如果你使用IDEA在编写JSON字符串的时候,然后要一个一个\去转义双引号的话,就实在太不应该了,又烦又容易出错。在IDEA可以使用Inject language帮我们自动转义双引号。
先将焦点定位到双引号里面,使用alt+enter快捷键弹出inject language视图,并选中 Inject language or reference。
选择后,切记,要直接按下enter回车键,才能弹出inject language列表。在列表中选择 json组件。
选择完后。鼠标焦点自动会定位在双引号里面,这个时候你再次使用alt+enter就可以看到
选中Edit JSON Fragment并回车,就可以看到编辑JSON文件的视图了。
可以看到IDEA确实帮我们自动转义双引号了。如果要退出编辑JSON信息的视图,只需要使用ctrl+F4快捷键即可。
2.4 批量修改
首先是使用ctrl+w选中rabbitTemplate这个文本,然后依次使用5次alt+j快捷键,逐个选中,这样五个文本就都被选中并且高亮起来了,这个时候就可以直接批量修改了。
2.5 symbol,模糊查找,只记得某几个字母
如果你依稀记得某个方法名字几个字母,想在IDEA里面找出来,可以怎么做呢?
直接使用ctrl+shift+alt+n
,使用symbol来查找即可。
比如说:
你想找到checkUser方法。直接输入user即可。
如果你记得某个业务类里面有某个方法,那也可以使用首字母找到类,然后加个.,再输入方法名字也是可以的。
2.6 自动生成not null判断语句
当我们使用rabbitTemplate. 后,直接输入notnull并回车,IDEA就好自动生成if判断了。
2.7 本地历史版本
2.8 代码调试
- 视图模式:
(1)Presentation Mode - 演示模式,专门用于Code Review这种需要展示代码的场景。使用方法alt + V
弹出View,然后选择Enter Presentation Mode
,之后,可以在view中选择Exit Presentation Mode
。但是完全没必要退出,因为当你对IDEA足够熟悉的时候,可以在演示试图中做任何事情。
在演示模式中,可以使用快捷键进行操作,更加方便。
快捷键 | 说明 |
---|---|
Ctrl + E | 弹出最近使用的文件 |
Ctrl + N | 定位文件 |
Ctrl + shift + N | 定位文件 |
(2)Distraction Free Mode - 禅模式
- 条件断点
- 强制返回
在打断点的方法栈处,强制返回你想要的方法返回值给调用方。 - 模拟异常
IDEA 可以在打断点的方法栈处,强制抛出异常给调用方。这个在调试源码的时候非常有用。 - Evaluate Expression:IDEA 还可以在调试代码的时候,动态修改当前方法栈中变量的值,方便我们的调试。
2.9 各种插件
见IEDA各种功能介绍和使用讲解文尾
三、使用要求
3.1 不允许出现魔法值
魔法值即未经预先定义的常量。
消除魔法值的几种方式
1、静态常量取代魔法值
2、枚举类取代魔法值
还有一种消除魔法值的方式是使用枚举类代替,下面让我们举个例子:
if (eventId == 1) {System.out.println("睡觉");
} else if (eventId == 2) {System.out.println("吃饭");
} else if (eventId == 3) {System.out.println("打豆豆");
}
如上代码是针对事件 id 去执行相应的事件,如果事件比较少,大家还可以勉强记住每个 eventId 对应的含义,但是随着事件 id 的增多,很可能会发生,新来的员工把事件 id 给搞混了,导致执行错误的事件,发生 bug。
那么我们可以使用枚举类来表示相应的事件:
public enum EventEnum {/*** 睡觉*/SLEEP_EVENT(1, "睡觉"),/*** 吃饭*/EAT_EVENT(2, "吃饭"),/*** 打豆豆*/FIGHT_PEA_EVENT(3, "打豆豆");private int eventId;private String desc;EventEnum(int eventId, String desc) {this.eventId = eventId;this.desc = desc;}public int getEventId() {return eventId;}public String getDesc() {return desc;}
}
修改完之后的代码如下:
if (eventId == EventEnum.SLEEP_EVENT.getEventId()) {System.out.println("睡觉");
} else if (eventId == EventEnum.EAT_EVENT.getEventId()) {System.out.println("吃饭");
} else if (eventId == EventEnum.FIGHT_PEA_EVENT.getEventId()) {System.out.println("打豆豆");
}
是不是可读性急剧提升,还不快看看自己代码中有没有这样的魔法值出现,有的话赶紧改造起来。
还有如果你需要在不同的地点引用同一数值,魔法数会让你烦恼不已,因为一旦这些数字发生改变,就必须在程序中找到所有的魔法值,并将它们全部修改一遍,这样就太费时费力了。
(Java)IntelliJ IDEA 2021.1使用技巧、常用快捷键大全(win+mac)相关推荐
- PHPStorm 常用 设置配置 和快捷键大全 Win/Mac
PHPStorm 下载及主题样式下载 http://www.lanmps.com/html/tools.html 风.fox 主题 Preferences->Appearance & ...
- IDEA常用快捷键大全
Idea常用快捷键大全,帮助我们更快更好地进行项目的开发. 编写代码快捷键 Ctrl+Shift + Enter,语句完成. "!",否定完成,输入表达式时按 "!&qu ...
- idea最好记的常用快捷键大全
idea最好记的常用快捷键大全 [学习笔记,仅供学习交流使用] 1.Ctrl + 类: Ctrl + F1:在光标所在的错误代码处显示错误信息 Ctrl + F3:调转到所选中的词的下一个引用位置 C ...
- ue设置注释快捷键_UltraEdit常用快捷键大全
第一页:UltraEdit常用快捷键大全 第二页:UltraEdit常用快捷键大全 第三页:UltraEdit常用快捷键大全 文本编辑 作用域 功能 快捷键 文本编辑器 改写切换 Insert 文本编 ...
- WebStorm 常用快捷键大全 - 归纳总结篇
WebStorm 常用快捷键,归纳总结 · 速读篇: 文章目录 常用 组合键如下: 不常用 组合键如下: 常用 组合键如下: Ctrl + E 最近打开的文件(取代package.json+右键组合, ...
- 常用计算机键,计算机快捷键40个_计算机常用快捷键大全分享
大家都知道我们的计算机上的键盘有非常多的按键,这些按键的功能多样,可以组合成很多不同功能的快捷键,所谓快捷键就是使用键盘上某一个或某几个键的组合完成一条功能命令,从而达到提高操作速度的目的.今天小编就 ...
- idle最好记的常用快捷键大全
idle最好记的常用快捷键大全 1.Ctrl + 类: Ctrl+F6 :可以清空前面的记录,重启shell Ctrl + [ :一行或多行代码,取消缩进 Ctrl + ] :一行或多行代码,增加缩进 ...
- finalcut剪切快捷键_Final Cut Pro X 常用快捷键大全 FCPX快捷键
j k l 播放中 快退 暂停/播放 快进 苹果+r render 苹果+z 撤销 shift+delete 无缝删除 a 箭头 b 剪 Cmd+B 创建新的媒体夹 Ctrl ...
- windows10快捷键(windows10常用快捷键大全)
时间就是金钱,那么我们该如何提升办公效率已经变得非常的必须,能用键盘操作的东西,几乎不用鼠标去点击,所以快捷键就变得非常的重要. 那么今天就和大家一起来分享Windows 10的各种快捷键. Win1 ...
- 张赐荣 | Windows 常用快捷键大全
Windows 常用快捷键大全 熟练掌握运用快捷键将会大大提升操作效率,本文整理了 Windows常用热键. [推荐阅读<详细键盘布局介绍及各功能按键说明>:https://www.cnb ...
最新文章
- 一行代码都不用写,教你如何快速搭建Github博客!!!
- Wireshark默认不抓取本地包的解决方式
- Oracle数据库的数据统计(Analyze)
- 第7章-选择器+伪类
- android按钮控件常见问题,Android的基本控件和Activity的应用总结
- python声音捕获_在Python中实现实时信号处理如何连续捕获音频?
- CGO磁盘管理For流星无语
- Struts2中获取HttpServletRequest,HttpSession等的几种方式
- Python让繁琐工作自动化——chapter10 日志模块
- 【训练题55:尺取 + 高阶等差】Another String | HDU7015 | 杭电多校五 04题
- 如何区分网线是几类的_网线怎么区分是几类的
- 用户体验测试(UX测试)
- 怎么安装python的数据库5.7.28_Windows下mysql-5.7.28下载、安装、配置教程
- python爬虫之使用urllib模块实现有道翻译功能
- 数据与城市正义:回龙观居民“身体被掏空”问题如何解决
- 华为鸿蒙杀毒,华为鸿蒙系统
- 解决echarts的title和legend重合问题(转)
- CentOS 8 如何更换yum源
- No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi
- 趣拍云:助力APP一周上线人脸识别+动态贴纸
热门文章
- ADMM算法相关资源
- java视频保存_一种Java实现存储视频收视率的方法与流程
- direct wifi 投屏_direct wifi 投屏_告别Wifi直接投 AOC无线投屏显示器轻松用
- Sanic学习——初识Sanic
- java swing+access/mysql开发零件销售管理系统
- 基于Python的Excel自动生成软件——以工作日志为例
- springmvc--sso单点登录cas统一身份认证器
- 数据结构------最短路径(Dijkstra)算法(爆肝详解)
- dede网站首页被黑攻击植入恶意跳转代码怎么办? 首页经常被篡改标题关键字的解决方法
- 服务器中病毒要不要重装系统,五种情况必须要给电脑重装系统,这三种不用重做系统,别被骗了!...