IntelliJ IDEA 快捷键速查表 - Java IDE 常用快捷键大全
IntelliJ 强到容易让人觉得难上手,快捷键才是解锁它的钥匙。本表按导航、编辑/重构、生成/补全、运行调试与单步、VCS、布局分组,重点标出 Search Everywhere、Generate、以及跨层级 Rename 这些性价比极高的键,还有调试时的单步集合。写 Java/Kotlin 经常要在相关类、运行状态之间反复横跳的场景里收益最大。读完能一路键盘完成跳类、重构与调试。
典型使用场景
面向用 IntelliJ IDEA 做 JVM / 多语言开发的工程师(本表键位以 macOS 版为准)。六个功能域覆盖日常主流程:代码导航、编辑与重构、代码补全、运行与调试、版本控制、窗口管理。最该形成肌肉记忆的是三组:Shift+Shift 全局搜索是不知道东西在哪时的总入口,Cmd+B / Cmd+Alt+B 声明与实现互跳用来快速读懂陌生代码,Cmd+Alt+L 加 Cmd+Alt+O 是提交前的固定动作。Alt+Enter 万能修复建议能在警告出现时直接就地解决,Shift+F6 重命名比查找替换安全得多。调试用 F8 跳过、F7 进入、Shift+F8 跳出控制粒度,F2 / Shift+F2 在编译错误之间快速跳转。
代码导航 11
Cmd+OCmd+Shift+OCmd+Alt+LCmd+BCmd+Alt+BAlt+F7Cmd+UCmd+[Cmd+]F2Shift+F2编辑与重构 13
Cmd+DCmd+YCmd+/Cmd+Alt+/Cmd+Alt+LCmd+Alt+OShift+F6Cmd+Alt+VCmd+Alt+MCmd+Alt+CCmd+Alt+FCmd+Alt+NAlt+Enter代码补全 7
Ctrl+SpaceCtrl+Shift+SpaceCmd+PCmd+QF4Alt+JCmd+Alt+T运行与调试 10
Ctrl+RCtrl+DCtrl+Shift+RCtrl+Shift+DF8F7Shift+F8Alt+F9Cmd+F8Cmd+Shift+F8版本控制 6
Cmd+KCmd+TCmd+Shift+KAlt+`Cmd+9Alt+3窗口管理 8
Cmd+1Cmd+4Cmd+5Cmd+7Cmd+Shift+F12Cmd+,Cmd+;Shift+Shift参数矩阵
| 参数 | 作用 | 示例 |
|---|---|---|
Shift+Shift | Search Everywhere,全局搜索类/文件/符号/操作 | Shift+Shift |
Cmd+O | 跳转到类 | Cmd + O |
Cmd+Shift+O | 跳转到文件 | Cmd + Shift + O |
Cmd+Alt+L | 跳转到符号(方法/变量) | Cmd + Alt + L |
Cmd+B | 跳转到定义 | Cmd + B |
Cmd+Alt+B | 跳转到实现 | Cmd + Alt + B |
Cmd+U | 跳转到父类/接口 | Cmd + U |
Alt+F7 | 查找用法(列出所有调用点) | Alt + F7 |
Cmd+[ / Cmd+] | 返回上一个位置 / 前进到下一个位置 | Cmd + [ |
F2 / Shift+F2 | 跳到下一个 / 上一个编译错误 | F2 |
Cmd+D | 复制当前行 | Cmd + D |
Cmd+Y | 删除当前行 | Cmd + Y |
Cmd+/ / Cmd+Alt+/ | 切换行注释 / 块注释 | Cmd + / |
Cmd+Alt+L | 格式化代码 | Cmd + Alt + L |
Cmd+Alt+O | 优化 import | Cmd + Alt + O |
Shift+F6 | 重命名并自动更新引用 | Shift + F6 |
Cmd+Alt+V | 提取变量 | Cmd + Alt + V |
Cmd+Alt+M | 提取方法 | Cmd + Alt + M |
Cmd+Alt+C | 提取常量 | Cmd + Alt + C |
Cmd+Alt+F | 提取字段 | Cmd + Alt + F |
Cmd+Alt+N | 内联 | Cmd + Alt + N |
Cmd+Alt+T | 用模板包裹(if/for/try) | Cmd + Alt + T |
Alt+Enter | 快速修复 / 建议(万能) | Alt + Enter |
Ctrl+Space | 基础代码补全 | Ctrl + Space |
Ctrl+Shift+Space | 智能补全(补全链式调用) | Ctrl + Shift + Space |
Cmd+P | 查看参数信息 | Cmd + P |
Cmd+Q | 快速文档 | Cmd + Q |
F4 | 查看源码 | F4 |
Alt+J | 选择下一个相同内容 | Alt + J |
Ctrl+R | 运行当前配置 | Ctrl + R |
Ctrl+D | 调试当前配置 | Ctrl + D |
Ctrl+Shift+R | 运行当前文件 | Ctrl + Shift + R |
Ctrl+Shift+D | 调试当前文件 | Ctrl + Shift + D |
F8 / F7 / Shift+F8 | 单步跳过 / 进入 / 退出 | F8 |
Alt+F9 | 运行到光标 | Alt + F9 |
Cmd+F8 / Cmd+Shift+F8 | 切换断点 / 查看所有断点 | Cmd + F8 |
Cmd+K | 提交 | Cmd + K |
Cmd+T | 拉取 | Cmd + T |
Cmd+Shift+K | 推送 | Cmd + Shift + K |
Alt+` | VCS 操作弹窗 | Alt + ` |
Cmd+9 | 打开 Git 工具窗口 | Cmd + 9 |
Cmd+1 / 4 / 5 / 7 | 打开 Project / Run / Debug / Structure 面板 | Cmd + 1 |
Cmd+Shift+F12 | 最大化编辑器 | Cmd + Shift + F12 |
Cmd+, | 打开设置 | Cmd + , |
Cmd+; | 打开项目结构 | Cmd + ; |
易错点与避坑指南
现象格式化后代码和团队其他人的版本产生大片无关 diff
原因Code Style 配置与团队不一致,格式化按各自规则重排了缩进、换行或引号。
处置先在设置中把 Code Style 调成团队约定并把配置文件入库,提交前固定执行 Cmd+Alt+L。
现象重命名后仍有地方引用旧名字,编译报找不到符号
原因文本出现的位置包含字符串常量、XML 或反射配置,IDE 的引用索引覆盖不到这些地方。
处置Shift+F6 会列出它识别到的所有引用逐个确认;剩下的散落位置用 Cmd+Shift+F 全局查找旧名字补改。
现象Windows 版 IDE 里按 Cmd 组合键没反应
原因本表键位以 macOS 为准,Windows 版对应键位不同(Ctrl / Alt 组合)。
处置用 Shift+Shift 全局搜索按功能名找到该操作,面板会显示当前系统下正确的键位。
现象调试时总是一层层进入三方库内部,看不到自己的业务代码
原因F7 会进入所有函数调用,包括外部库实现,调用栈越走越深。
处置默认改用 F8 跳过,只在需要看逻辑时才 F7 进入;进入后用 Shift+F8 立刻返回上层。
现象Alt+Enter 弹出的建议里有多个选项,选错后代码被改成不想要的样子
原因快速修复列表会同时给出「意图」「检查」「重构」等不同类别,选中项行为各不相同。
处置执行前看清提示文本的完整描述;对改写面较大的选项,先用 Cmd+Z 撤销再改用具体重构操作。
现象提取变量或提取方法时提示无法提取,或提取后逻辑变了
原因选区不是单一完整表达式、跨越语句边界,或表达式含副作用(自增、赋值、函数调用),IDE 会拒绝或拆分不当。
处置只选中一个完整表达式,必要时先加括号固定优先级;含副作用的表达式先拆成多步再提取。
现象Git 提交面板里看不到刚新建的文件
原因新文件处于未跟踪(untracked)状态,需要先 Add 进暂存区。
处置打开 Cmd+9 的 Git 工具窗口,检查 Changes 与 Untracked 两个分组并 Add,再执行 Cmd+K。
现象智能补全弹出的候选里混进了无关项,选错后一堆引用要返工
原因Ctrl+Shift+Space 的智能补全会基于上下文展开长链式调用,候选列表较长时容易误选。
处置先用 Cmd+P 查看方法签名与参数确认,再回车;不确定时改用 Ctrl+Space 的基础补全逐级选择。
排障路径
1不知道东西在哪时的总入口
Shift+Shift → 输入类名 / 文件名 / 方法名 / 操作名Search Everywhere 可搜类、文件、符号、命令操作四类内容。若类搜不到,多半是索引未建立或依赖未下载完成,先触发一次项目构建再看。
2读懂陌生代码的导航三连
Cmd+B(跳定义)→ Cmd+Alt+B(跳实现)→ Alt+F7(查找用法)→ Cmd+U(跳父类)从接口跳到实现看清真实逻辑,再用 Alt+F7 列出所有调用点确认影响面,Cmd+U 回到抽象层。四步能快速建立一段陌生代码的全局认知。
3提交前固定三步
Cmd+Alt+L(格式化)→ Cmd+Alt+O(优化 import)→ Cmd+K(提交)格式化统一风格、优化 import 清理未使用引入,两步完成后 diff 只剩真实逻辑改动。提交前再按 Cmd+K 提交,评审噪音最少。
4重构并在提交前核对
Shift+F6(重命名)→ Cmd+Alt+V(提取变量)→ Cmd+Alt+M(提取方法)→ Cmd+Alt+N(内联)重命名时逐条确认引用列表;提取操作把长表达式与重复逻辑分离出来,可读性提升;内联用于消掉只用一次的中间变量。序列执行后 diff 是结构性的、不改变行为。
5标准调试流程
Ctrl+D(调试)→ Cmd+F8(打断点)→ F8 / F7 / Shift+F8 → Alt+F9(运行到光标)F8 跳过本函数走一行、F7 进入函数内部、Shift+F8 返回上层;Alt+F9 适合只想执行到出错行前一步的场景。用 Cmd+Shift+F8 检查断点是否落在实际执行路径上。
6编译报错的快速跳转
F2(下一个错误)→ Shift+F2(上一个错误)→ Alt+Enter(就地修复)F2 在构建报错列表中逐条跳转,比手动翻控制台快;到达错误行后按 Alt+Enter 查看可用修复(如生成缺失方法、加 import),能自动解决的就不必手改。
7查看调用链与快速文档
Cmd+P(参数信息)→ Cmd+Q(快速文档)→ F4(查看源码)悬停在方法名上用 Cmd+P 看完整参数列表、Cmd+Q 看文档说明;对 JDK 或三方库类按 F4 直接跳源码确认实现,是判断行为的最可靠方式。
命令示例
打开陌生项目先用全局搜索定位,再跳定义
Shift+Shift(输入类名)
Cmd+O(输入类名)
Cmd+B面对上千行的仓库,靠目录树翻找几乎没有命中率。Shift+Shift 建索引式全局搜索,Cmd+O 精确定位类,Cmd+B 进定义,这三步连起来是读陌生代码最快的路径。
改签名前先确认所有调用点,避免漏改
Cmd+B(跳到定义)
Alt+F7(查找用法)
Shift+F6Shift+F6 是 IDE 级的语义重命名,会连字符串里的引用和测试一起改。但跨模块时如果目标类来自 jar 包而源码未挂载,只能改到本项目内的调用点,外部调用点会被漏掉。改完务必 Alt+F7 复查一遍。
调试时用「运行到光标」代替逐行单步
Cmd+F8(切换断点)
Alt+F9(运行到光标)
F7(单步进入)
F8(单步跳过)
Shift+F8(单步退出)循环里逐行 F8 会把人按到崩溃。正确顺序是打断点在循环外,Alt+F9 直奔光标,只有怀疑具体某一行时才用 F7/F8,退出一层栈用 Shift+F8。
快捷键被占用时先定位冲突,而不是硬按
Cmd+,(设置里搜 Keymap)
搜索目标动作 → 右键查看是否已有绑定
冲突时选 Add Keyboard Shortcut 或 Remove快捷键突然失灵通常是两套键位映射(自定义 Keymap 或 Vim/Emacs 插件)撞了车。在 Keymap 里按动作搜索,右侧会列出所有已绑定组合,右键即可解绑或改绑;找不到原动作时先确认当前 Keymap 是否不是你以为的那个。
改错了配置如何回滚:优先用版本管理里的备份
Cmd+,(Settings)
搜索 Version Control → Local History
右键 Settings.xml 或目标文件 → RevertIDEA 的设置改动没有「撤销」按钮,误改键位、插件、索引设置后只能靠 Local History 找回该文件的历史版本。若项目已被 git 托管,Settings 目录(.idea/)是否入库取决于 .gitignore —— 这是另一个层面的回滚路径。
常见坑与注意事项
- Shift+F6 重命名会一并改动字符串字面量、反射名和配置 key;涉及对外接口时重命名后必须同时改调用方并保留旧名兼容,否则线上调用方直接编译失败。
- 调试时改了代码却没重新编译就跑,执行的仍是旧 class;出现「改了没生效」时先确认构建产物是新的。
- Alt+F9(运行到光标)只对当前调试会话有效,会话结束后断点全部失效,容易误判问题复现条件。
- 误改 Settings 后没有版本管理里的备份可回滚:先在 Keymap / Plugins 里确认改动项,能手动改回就手动改回,别急着删除 .idea 目录(会丢掉 run configuration、索引和本地历史)。
- Cmd+Shift+K(推送)前不检查暂存区,可能把调试断点文件、大纲草稿或含密钥的 .env 一起提交;推送前用 Alt+反引号 打开的 VCS 弹窗过一遍 diff。
- Find(Alt+F3)和全局搜索(Shift+Shift)作用域不同:在 Alt+F3 里替换会漏掉索引未覆盖的生成代码,跨模块改动必须用 Shift+Shift 复核。
提示
- Alt+Enter 是万能快捷键,遇到警告/错误时按它会给出修复建议。
- Shift+Shift 可以快速搜索任何内容(类、文件、符号、操作)。
- Cmd+Alt+L 格式化代码前,建议先设置好代码风格(Code Style)。
常见问题
跳转定义和查找用法各对应哪个键,接口实现怎么跟着走?
Cmd+B 跳到当前符号的定义处,Alt+F7 反向查找所有引用位置,Cmd+Alt+B 跳到具体实现,Cmd+U 跳到父类或接口的声明。读框架源码或追接口实现时,沿着 Cmd+B → Cmd+Alt+B → Cmd+U 三步就能在抽象与实现之间往返,比全局文本搜索准得多。Cmd+[ 与 Cmd+] 在最近访问的位置之间前进后退,配合上面的跳转链回溯路径非常顺手。
Shift+Shift 能搜什么,为什么它比导航键更值得先记?
Shift+Shift 打开 Search Everywhere,一个输入框搜遍类、文件、符号、操作符、设置项,连不在 Project 树里的第三方库类也能命中。它是唯一不依赖「先知道在哪」的入口——记不住快捷键时直接搜操作名,记不住类名时搜业务关键词。Cmd+P 调参数信息、Cmd+Q 看快速文档,适合在搜索定位之后补上下文;全局文本搜索则另走 Cmd+Shift+F。
Alt + Enter 为何被称作「万能键」,它具体解决什么问题?
它是上下文意图动作的入口:光标在有编译错误的行上时弹出快速修复建议,在类定义处可生成构造函数/getter/setter,选中一段表达式可提取为变量或常量(也可走 Cmd+Alt+V / Cmd+Alt+C),在接口方法上可生成实现,在测试类里可生成测试方法。它省掉的是「先在菜单里找对应命令」这一步——与其记重构菜单的位置,不如描述当前意图让 IDE 给出可执行选项。
重命名和提取方法之前要做哪些准备,才能让重构不报错?
先把项目索引完整建立、代码能正常编译,重构依赖符号解析,索引不全时它会拒绝执行或漏改引用。Shift+F6 重命名前确认新名称无冲突(同名类、静态导入符号会撞名);Cmd+Alt+M 提取方法时,选中的代码块不能跨越尚未闭合的语法结构,且被提取代码引用的局部变量会成为方法参数。Cmd+Alt+L 格式化前应先在设置里定好 Code Style,否则批量格式化会按默认风格大面积改动文件。
调试会话里怎么控制执行节奏,出问题怎么退出?
节奏控制:F8 单步跳过、F7 单步进入、Shift+F8 单步跳出、Alt+F9 直接运行到光标行;断点用 Cmd+F8 切换,Cmd+Shift+F8 一次性查看所有断点,确认断在哪个模块。入口是 Ctrl+R 运行当前配置、Ctrl+D 调试当前配置,另有 Ctrl+Shift+R / Ctrl+Shift+D 针对当前文件单跑,需要一份与主配置不同的参数时很有用。停止用 Cmd+F2,恢复程序用 Cmd+Alt+R。
由 巧匠 维护
公开更新于 2026年7月21日,内容持续校对官方文档。