1 前言

正确使用快捷键可以明显提高编码效率。本文对Idea常用快捷键进行了分类汇总。

文中汇总的快捷键均为 Intellij IDEA 默认的快捷键。快捷键的搜索、配置、常见冲突等,可以查看附录。

2 涉及的快捷键汇总

IDEA 中使用重构功能,主要包括以下 4 种方式:

  1. 直接使用快捷键,如 Ctrl+Alt+M
  2. Alt+Enter,根据 IDEA 的提示进行重构
  3. Ctrl+Alt+Shift+T 打开重构面板进行重构,如:Ctrl+Alt+Shift+T->Extract Method
  4. 鼠标右键,利用 Refactor 面板进行重构,如:鼠标右键->Refactor->Extract Method

这里会对 4 种方式都进行介绍, 但建议优先使用 1)和 2); 无对应的直接快捷键或快捷 键冲突时,优先使用 3)

(注:在不同版本的 IDEA 中,Ctrl+Alt+Shift+T 或鼠标打开重构面板中,操作名称略有区 别,如 2019 版本提炼方法是:“Extract Method”,而在最新版中是:“Method”)

2.1 测试相关

快捷键功能描述
Ctrl+Shift+F10执行当前光标所在位置的类/方法
Shift+F10执行上次运行的类/方法
Ctrl+Shift+T类和测试类之间切换,或创建当前类的测试类
Alt+Enter功能描述
Create Test创建测试类

2.2 格式化

快捷键功能描述
Ctrl+Alt+L代码格式化
Ctrl+Alt+O优化 import

2.3 常用抽取

快捷键Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述备注
Ctrl+Alt+MExtract Method提炼方法M是 Method 的首字母
Ctrl+Alt+PIntroduce Parameter抽取为方法参数P是 Parameter 的首字母
Ctrl+Alt+FIntroduce Field提取属性字段F 是 Field 的首字母
Ctrl+Alt+CIntroduce Constant提炼常量C 是 Constant 的首字母
Ctrl+Alt+VIntroduce Variable抽取变量V 是 Variable 的首字母

2.4 常用修改/封装

快捷键Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述
Shift+F6Rename重命名
Ctrl+F6Change Signature修改方法签名,如调整参数名、参数顺序等
Ctrl+Shift+F6Type Migration类型迁移
Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述
Encapsulate Fields封装字段
Alt+Enter功能描述备注
Cleanup codeclean 代码
Make xxx Final把 xxx 变为 finalfinal 提示:settings->Editor->Inspections->Code style issues->勾选 field may be final
Change access modifier修改访问权限

2.5 提炼/引入类

Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述
Introduce Parameter Object将方法参数提取为类
Extract Delegate创建委托(将成员抽取到其他类中,并委托调用)

2.6 类间的继承、实现、委托

Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述
Extract Interface提炼接口
Extract Superclass提炼超类
Pull Members Up将子类成员上提到父类中
Push Members Down将父类成员下推到子类中
Use Interface Where Possible在可能的地方使用接口替换实现类
Replace Inheritance with Delegation使用委托取代继承
Remove Middleman移除中间人
Alt+Enter功能描述
Create subclass创建当前类的子类
Implement interface实现接口

2.7 搬移

快捷键Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述
F6Move (Static) Members搬移静态成员
F6Move Instance Method搬移实例方法
F6Move Inner Class搬移内部类

2.8 实例/静态方法转换

Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述
Make Static实例方法变为静态方法
Convert To Instance Method转换为实例方法

2.9 代码生成

Alt+Insert功能描述
Constructor创建构造方法
Getter/Setter创建 get/set 方法
Test创建测试类

2.10 代码简化

场景Alt+Enter功能描述
for 循环Replace with collect用 collect 替代 for 循环
for 循环Replace with Map.forEach用 Map.forEach 替代 for 循环
for 循环Replace with sum()用 sum 求和函数替代 for 循环
if-elseReplace ‘if else’ with ‘?:’使用三目运算替代 if
lambdaReplace lambda with method reference使用方法引用简化 lambda
lambdaReplace with expression lambda简化 lambda 语句
删除冗余Safe Delete XXX安全删除冗余、废弃代码
删除冗余Remove redundant initializer删除冗余的初始化
快捷键Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述
Ctrl+Alt+NInline XXX内联
Alt+DeleteSafe Delete安全删除冗余、废弃代码

2.11 构造方法改造

Ctrl+Alt+Shift+T鼠标右键->Refactor功能描述
Replace Constructor with Builder用 builder 模式替代构造方法
Replace Constructor with Factory Method使用工厂替代构造方法

2.12 修复编译错误

IDEA 编译错误,会以显著的波浪线(一般为红色)提示。这类问题都可以尝试 Alt+Enter,看 是否能交给 IDEA 自动修复。除了下面提到的,日常工作中自动添加依赖、添加 classpath、 类型、访问权限修复等,一般都可以解决。

Alt+Enter功能描述
Add xxx as parameter…添加方法参数
Add constructor parameters添加为构造方法参数
Initialize In constructor在构造方法中初始化
Migrate xxx type to xxx类型迁移
Make xxx public/protected/…自动修改访问权限
…………

2.13 代码的跳转、移动、删除等

快捷键功能描述
Alt+F7查看引用位置
Ctrl+E切换到近期编辑的文件
Ctrl+W选中代码块
Alt+J选中相邻的相同字符串
Ctrl+Shift+↑/↓移动语句
Ctrl+Y整行删除

2.14 VCS 操作

快捷键功能描述备注
Ctrl+KVCS 中 git commit 代码
Alt+9打开 git log 面板View->Tool Windows->Version Control
Ctrl+D打开 commit 记录中某文件 diff 明细需要在打开 git log 面板后,选中某次 commit 中修改的文件后操作
F7diff 明细中跳转到下一处修改同上
Shift+F7diff 明细中跳转到上一处修改同上
F4从 diff 明细跳转到对应代码同上

2.15 各面板/弹窗中跳转、选择

快捷键功能描述
Alt+下划线标注的字母打开、跳转到各面板中指定的输入框、勾选框等
Tab键跳转到下一个输入框、勾选框等
空格勾选或取消勾选

3 快捷键扩展

3.1 IDEA 直接导出所有快捷键

在 IDEA 的 Help->Keyboard Shortcuts PDF 中,可以导出所有的快捷键

image-20230623214908815

4 附录

4.1 IDEA 中快捷键的查找与修改

Step1. File->Settings->Keymap

Step2.1 输入功能描述查找快捷键

eg:搜索框输入功能描述:Extract Method,查找对应快捷键

Step2.2 输入快捷键查找对应功能描述

eg:点击放大镜图标弹出”find Shortcut”搜索框->按住键盘上的”Ctrl+Alt+N”(注意不是输入这 个字符串,是同时按住键盘上的 3 个键)->得到搜索结果

Step3 修改快捷键

在快捷键上右键->面板中增加、删除快捷键

4.2 常见的快捷键冲突、失效原因

快捷键未配置或曾经修改过

参考 4.1,查看快捷键是否存在即可。

Ctrl+Shift+F等搜索与输入法冲突

默认的全局搜索等容易与输入法默认快捷键冲突,处理方式有:

  • 方法一:切换输入法 不生效时候切换输入法即可
  • 方法二:更换输入法快捷键