IntelliJ IDEA 快捷键速查表 - Java IDE 常用快捷键大全

IntelliJ 强到容易让人觉得难上手,快捷键才是解锁它的钥匙。本表按导航、编辑/重构、生成/补全、运行调试与单步、VCS、布局分组,重点标出 Search Everywhere、Generate、以及跨层级 Rename 这些性价比极高的键,还有调试时的单步集合。写 Java/Kotlin 经常要在相关类、运行状态之间反复横跳的场景里收益最大。读完能一路键盘完成跳类、重构与调试。

开发工具·共 55 条命令·最后更新 2026-07-21
intellijideajava快捷键

典型使用场景

面向用 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+O
跳转到类
Cmd+Shift+O
跳转到文件
Cmd+Alt+L
跳转到符号(方法/变量)
Cmd+B
跳转到定义
Cmd+Alt+B
跳转到实现
Alt+F7
查找用法
Cmd+U
跳转到父类/接口
Cmd+[
返回上一个位置
Cmd+]
前进到下一个位置
F2
跳转到下一个错误
Shift+F2
跳转到上一个错误

编辑与重构 13

Cmd+D
复制当前行
Cmd+Y
删除当前行
Cmd+/
行注释
Cmd+Alt+/
块注释
Cmd+Alt+L
格式化代码
Cmd+Alt+O
优化 import
Shift+F6
重命名
Cmd+Alt+V
提取变量
Cmd+Alt+M
提取方法
Cmd+Alt+C
提取常量
Cmd+Alt+F
提取字段
Cmd+Alt+N
内联
Alt+Enter
快速修复/建议

代码补全 7

Ctrl+Space
基础补全
Ctrl+Shift+Space
智能补全
Cmd+P
参数信息
Cmd+Q
快速文档
F4
查看源码
Alt+J
选择下一个相同内容
Cmd+Alt+T
用模板包裹

运行与调试 10

Ctrl+R
运行当前配置
Ctrl+D
调试当前配置
Ctrl+Shift+R
运行当前文件
Ctrl+Shift+D
调试当前文件
F8
单步跳过
F7
单步进入
Shift+F8
单步退出
Alt+F9
运行到光标
Cmd+F8
切换断点
Cmd+Shift+F8
查看所有断点

版本控制 6

Cmd+K
提交
Cmd+T
拉取
Cmd+Shift+K
推送
Alt+`
VCS 操作弹窗
Cmd+9
打开 Git 工具窗口
Alt+3
打开 Find 工具窗口

窗口管理 8

Cmd+1
打开 Project 工具窗口
Cmd+4
打开 Run 工具窗口
Cmd+5
打开 Debug 工具窗口
Cmd+7
打开 Structure 工具窗口
Cmd+Shift+F12
最大化编辑器
Cmd+,
打开设置
Cmd+;
打开项目结构
Shift+Shift
全局搜索(Search Everywhere)

参数矩阵

参数作用示例
Shift+ShiftSearch 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优化 importCmd + 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. 1不知道东西在哪时的总入口

    Shift+Shift → 输入类名 / 文件名 / 方法名 / 操作名

    Search Everywhere 可搜类、文件、符号、命令操作四类内容。若类搜不到,多半是索引未建立或依赖未下载完成,先触发一次项目构建再看。

  2. 2读懂陌生代码的导航三连

    Cmd+B(跳定义)→ Cmd+Alt+B(跳实现)→ Alt+F7(查找用法)→ Cmd+U(跳父类)

    从接口跳到实现看清真实逻辑,再用 Alt+F7 列出所有调用点确认影响面,Cmd+U 回到抽象层。四步能快速建立一段陌生代码的全局认知。

  3. 3提交前固定三步

    Cmd+Alt+L(格式化)→ Cmd+Alt+O(优化 import)→ Cmd+K(提交)

    格式化统一风格、优化 import 清理未使用引入,两步完成后 diff 只剩真实逻辑改动。提交前再按 Cmd+K 提交,评审噪音最少。

  4. 4重构并在提交前核对

    Shift+F6(重命名)→ Cmd+Alt+V(提取变量)→ Cmd+Alt+M(提取方法)→ Cmd+Alt+N(内联)

    重命名时逐条确认引用列表;提取操作把长表达式与重复逻辑分离出来,可读性提升;内联用于消掉只用一次的中间变量。序列执行后 diff 是结构性的、不改变行为。

  5. 5标准调试流程

    Ctrl+D(调试)→ Cmd+F8(打断点)→ F8 / F7 / Shift+F8 → Alt+F9(运行到光标)

    F8 跳过本函数走一行、F7 进入函数内部、Shift+F8 返回上层;Alt+F9 适合只想执行到出错行前一步的场景。用 Cmd+Shift+F8 检查断点是否落在实际执行路径上。

  6. 6编译报错的快速跳转

    F2(下一个错误)→ Shift+F2(上一个错误)→ Alt+Enter(就地修复)

    F2 在构建报错列表中逐条跳转,比手动翻控制台快;到达错误行后按 Alt+Enter 查看可用修复(如生成缺失方法、加 import),能自动解决的就不必手改。

  7. 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+F6

Shift+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 或目标文件 → Revert

IDEA 的设置改动没有「撤销」按钮,误改键位、插件、索引设置后只能靠 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日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们