IntelliJ IDEA 无鼠标开发深度实战:从快捷键到键盘流工作流
欢迎你来读这篇博客,这篇博客主要是关于 IntelliJ IDEA 无鼠标开发实战。
很多人学快捷键的方式是:收藏一张快捷键大全,然后三天后忘得干干净净。真正的无鼠标开发不是背快捷键,而是重建一套“键盘驱动的开发工作流”:找文件、跳代码、写代码、重构、调试、提交、跑命令,全程尽量不让手离开键盘。
序言
先说结论:无鼠标开发不是炫技,它的本质是减少上下文切换。
写 Java / Spring Boot 项目时,我们一天会反复做这些事:
- 找 Controller、Service、Mapper、Repository;
- 在接口、实现类、调用方、测试类之间跳转;
- 生成构造器、Getter、Setter、Override 方法、测试方法;
- 修复 import、补全语句、查看参数、查看文档;
- 抽方法、改方法名、移动类、改包名;
- 打断点、单步调试、查看表达式、重新运行;
- 看 Git diff、挑选提交、commit、push;
- 打开 Terminal 执行 Maven、Gradle、Docker、Git 命令。
如果每一步都要靠鼠标去侧边栏点来点去,IDEA 再强也会被你用成“高级记事本”。无鼠标开发的目标不是完全不用鼠标,而是做到:80%
的高频操作都能用键盘完成,鼠标只处理低频、图形化、一次性配置类操作。
本文默认你使用 IntelliJ IDEA 2026.1 左右版本,快捷键基于官方默认 Keymap。不同系统、不同 Keymap、不同插件可能会有差异,所以所有快捷键都建议最终以Settings / Preferences -> Keymap 中显示的为准。
macOS 快捷键符号速查
| 符号 | 键位 |
|---|---|
⌘ |
Command |
⌥ |
Option / Alt |
⌃ |
Control |
⇧ |
Shift |
⏎ |
Enter |
⎋ |
Escape |
⌦ |
Delete / Forward Delete |
正文
1. 无鼠标开发的核心思想
不要一上来就背 200 个快捷键。快捷键不是知识点,是肌肉记忆。肌肉记忆靠场景建立,而不是靠表格建立。
我建议把 IDEA 无鼠标能力拆成 7 层:
flowchart TB
A[无鼠标开发能力] --> B[入口层: Search Everywhere / Find Action]
A --> C[导航层: 文件 / 类 / 符号 / 调用链]
A --> D[编辑层: 选择 / 移动 / 补全 / 生成]
A --> E[重构层: Rename / Extract / Move / Safe Delete]
A --> F[调试层: Run / Debug / Breakpoint / Evaluate]
A --> G[工程层: Maven / Gradle / Terminal / Services]
A --> H[协作层: Git / Diff / Commit / Push]
学习顺序也应该这样来:
flowchart LR
A[第一阶段: 会找] --> B[第二阶段: 会跳]
B --> C[第三阶段: 会写]
C --> D[第四阶段: 会改]
D --> E[第五阶段: 会调]
E --> F[第六阶段: 会提交]
F --> G[第七阶段: 形成工作流]
很多人一开始就学重构快捷键,但连“快速跳到文件”和“回到上一个编辑位置”都不熟,这就像还没学会走路就开始练凌波微步,帅是帅,容易摔。
2. 先把 Keymap 配好
IDEA 的快捷键入口在:
- macOS:
IntelliJ IDEA -> Settings -> Keymap,快捷键一般是⌘ , - Windows / Linux:
File -> Settings -> Keymap,快捷键一般是Ctrl + Alt + S
建议先做 5 件事。
2.1 选择正确 Keymap
常见选择:
| Keymap | 适合人群 |
|---|---|
| macOS | Mac 用户默认推荐 |
| Windows | Windows 用户默认推荐 |
| Eclipse | 从 Eclipse 转 IDEA 的 Java 开发者 |
| VS Code | 从 VS Code 转 JetBrains 全家桶的人 |
| Emacs | 少数派,懂的都懂 |
不建议一开始就大改 Keymap。默认 Keymap 的最大优势是:教程、官方文档、同事沟通都容易对齐。
你可以小范围调整冲突严重的快捷键,但不要把 IDEA 改成一个只有你自己会用的武器库。团队开发不是武林大会,不要每个人都带一套独门暗器。
2.2 解决系统快捷键冲突
macOS 上比较常见的冲突:
| 冲突场景 | 现象 | 处理建议 |
|---|---|---|
| Spotlight | ⌘ Space 被系统占用 |
IDEA 默认补全不是这个,一般不用改 |
| 输入法切换 | ⌃ Space / ⌘ Space 冲突 |
去系统键盘设置中调整 |
| Mission Control | ⌃ ↑ / ⌃ ↓ 冲突 |
如果影响 IDEA,可改系统快捷键 |
| F1-F12 | 调试快捷键不生效 | 系统设置中启用标准功能键,或配合 fn 使用 |
Windows / Linux 上也可能出现窗口管理器、输入法、显卡驱动快捷键冲突。判断方式很简单:在 IDEA 的 Keymap 搜索该动作,看 IDEA
是否能识别按键;如果 IDEA 收不到,多半是系统先拦截了。
2.3 学会用 Find Action 找动作
你记不住快捷键没关系,但必须记住“找快捷键的快捷键”。
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Find Action | ⌘ ⇧ A |
Ctrl + Shift + A |
| Search Everywhere | 连按两次 Shift |
连按两次 Shift |
Find Action 可以搜索 IDEA 里的几乎所有动作,比如:
Reformat CodeOptimize ImportsRenameExtract MethodRun Inspection by NameGit PullMaven ReloadOpen TerminalShow Services
最实用的学习方式是:先用 Find Action 找动作,再记住高频动作的快捷键。
3. 第一组必须形成肌肉记忆的快捷键
这 20 个快捷键是“键盘流”的地基。先练它们,比背快捷键大全更有用。
| 场景 | macOS | Windows / Linux | 说明 |
|---|---|---|---|
| Search Everywhere | 双击 Shift |
双击 Shift |
全局入口,找类、文件、动作、设置 |
| Find Action | ⌘ ⇧ A |
Ctrl + Shift + A |
找 IDEA 动作 |
| Recent Files | ⌘ E |
Ctrl + E |
最近文件,比 Project 树快 |
| Project 窗口 | ⌘ 1 |
Alt + 1 |
打开 / 聚焦项目树 |
| Terminal | ⌥ F12 |
Alt + F12 |
打开内置终端 |
| Run Anything | 双击 ⌃ |
双击 Ctrl |
运行配置、Maven、Gradle 等 |
| Intention / Quick Fix | ⌥ ⏎ |
Alt + Enter |
IDEA 神技入口 |
| Generate | ⌘ N |
Alt + Insert |
生成构造器、Getter、Setter 等 |
| Reformat Code | ⌘ ⌥ L |
Ctrl + Alt + L |
格式化代码 |
| Complete Statement | ⌘ ⇧ ⏎ |
Ctrl + Shift + Enter |
补全语句结构 |
| Go to Declaration | ⌘ B |
Ctrl + B |
跳声明 / 跳使用处 |
| Find Usages | ⌥ F7 |
Alt + F7 |
查找使用处 |
| Back | ⌘ ⌥ ← |
Ctrl + Alt + Left |
返回上一次位置 |
| Forward | ⌘ ⌥ → |
Ctrl + Alt + Right |
前进 |
| Last Edit Location | ⌘ ⇧ ⌫ |
Ctrl + Shift + Backspace |
回到最后编辑点 |
| Extend Selection | ⌥ ↑ |
Ctrl + W |
智能扩大选择范围 |
| Shrink Selection | ⌥ ↓ |
Ctrl + Shift + W |
缩小选择范围 |
| Rename | ⇧ F6 |
Shift + F6 |
安全重命名 |
| Refactor This | ⌃ T |
Ctrl + Alt + Shift + T |
重构菜单 |
| Commit | ⌘ K |
Ctrl + K |
提交代码 |
说明:macOS 的部分快捷键会受系统设置、触控栏、外接键盘影响,调试类 F 键尤其要注意。
4. 找文件:别再从 Project 树里一层层翻
无鼠标开发的第一步是“找得到”。
4.1 Search Everywhere:全局入口
快捷键:
- macOS:双击
Shift - Windows / Linux:双击
Shift
适合搜索:
- 类名:
SettlementService - 文件名:
application.yml - 方法名 / 字段名:
calculateAmount - IDEA 动作:
Maven Reload - 设置项:
Keymap - Git 分支 / 提交信息等
技巧:
1 | |
4.2 精准入口:类、文件、符号、动作
| 目标 | macOS | Windows / Linux | 示例 |
|---|---|---|---|
| 找类 | ⌘ O |
Ctrl + N |
OrderService |
| 找文件 | ⌘ ⇧ O |
Ctrl + Shift + N |
pom.xml |
| 找符号 | ⌘ ⌥ O |
Ctrl + Alt + Shift + N |
方法、字段、常量 |
| 找动作 | ⌘ ⇧ A |
Ctrl + Shift + A |
Maven Reload |
实战建议:
- 找 Java 类优先用“找类”;
- 找配置、SQL、前端文件优先用“找文件”;
- 找某个方法、枚举值、常量优先用“找符号”;
- 不知道菜单在哪,直接用“找动作”。
4.3 Recent Files:比 Project 树更常用
快捷键:
- macOS:
⌘ E - Windows / Linux:
Ctrl + E
开发时你通常只在 5~10 个文件之间来回切:Controller、Service、Repository、DTO、Mapper、测试类。Recent Files 比 Project 树快得多。
如果想只看最近编辑过的文件:
- macOS:
⌘ ⇧ E - Windows / Linux:
Ctrl + Shift + E
这个快捷键对修 bug 很有用,因为 bug 修到一半你经常会忘记刚刚改了哪些文件。
5. 跳代码:从“看目录”切换到“看关系”
项目越大,目录树越没用。真正有效的是关系导航。
5.1 声明、实现、使用处
| 操作 | macOS | Windows / Linux | 用途 |
|---|---|---|---|
| Go to Declaration or Usages | ⌘ B |
Ctrl + B |
跳到声明或使用处 |
| Go to Implementation | ⌘ ⌥ B |
Ctrl + Alt + B |
接口跳实现类 |
| Go to Type Declaration | ⌘ ⇧ B |
Ctrl + Shift + B |
变量跳类型 |
| Find Usages | ⌥ F7 |
Alt + F7 |
全局查使用 |
| Show Usages | ⌘ ⌥ F7 |
Ctrl + Alt + F7 |
弹窗查看使用 |
| Go to Super Method / Class | ⌘ U |
Ctrl + U |
跳父类 / 父方法 |
Spring 项目常用场景:
1 | |
- 光标放在
findByOrderNo上,Find Usages可以查业务调用方; - 光标放在接口名上,
Go to Implementation可以跳实现类; - 光标放在变量上,
Go to Type Declaration可以看具体类型; - 光标放在 Controller 方法上,
Find Usages可以看测试、Feign、内部调用。
5.2 返回与前进:别靠鼠标点 tab
| 操作 | macOS | Windows / Linux |
|---|---|---|
| 返回上一个位置 | ⌘ ⌥ ← |
Ctrl + Alt + Left |
| 前进 | ⌘ ⌥ → |
Ctrl + Alt + Right |
| 回到最后编辑位置 | ⌘ ⇧ ⌫ |
Ctrl + Shift + Backspace |
| 文件 Tab 切换 | ⌃ ← / ⌃ → |
Alt + Left / Alt + Right |
| Switcher | ⌃ Tab |
Ctrl + Tab |
这里最重要的是“返回”。你从 Controller 跳到 Service,从 Service 跳到 Repository,从 Repository 跳到 Entity
后,千万别再拿鼠标找原文件。用返回键一路回来,丝滑得像开了传送门。
5.3 文件结构:在一个大类里快速定位
快捷键:
- macOS:
⌘ F12 - Windows / Linux:
Ctrl + F12
适合场景:
- 一个 Service 有很多方法;
- 一个 Controller 有很多接口;
- 一个枚举类有很多枚举项;
- 一个配置类里有很多 Bean。
打开 File Structure 后直接输入方法名即可过滤。
6. 编辑代码:用“结构化编辑”替代手工挪代码
6.1 智能选择:Extend Selection
| 操作 | macOS | Windows / Linux |
|---|---|---|
| 扩大选择 | ⌥ ↑ |
Ctrl + W |
| 缩小选择 | ⌥ ↓ |
Ctrl + Shift + W |
例如光标在下面的 amount 上:
1 | |
连续按“扩大选择”,IDEA 会按语法结构选择:
1 | |
这比你用鼠标拖拽精准得多,尤其适合抽变量、抽方法、包裹 try-catch。
6.2 行操作:复制、删除、移动、合并
| 操作 | macOS | Windows / Linux |
|---|---|---|
| 复制当前行 / 选择区域 | ⌘ D |
Ctrl + D |
| 删除当前行 | ⌘ ⌫ |
Ctrl + Y |
| 上移语句 | ⌘ ⇧ ↑ |
Ctrl + Shift + Up |
| 下移语句 | ⌘ ⇧ ↓ |
Ctrl + Shift + Down |
| 上移行 | ⌥ ⇧ ↑ |
Alt + Shift + Up |
| 下移行 | ⌥ ⇧ ↓ |
Alt + Shift + Down |
| 合并行 | ⌃ ⇧ J |
Ctrl + Shift + J |
区别很关键:
- Move Statement 是按语法结构移动,适合移动
if、方法、字段; - Move Line 是按文本行移动,适合简单调整配置或局部代码。
6.3 语句补全:Complete Current Statement
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Complete Current Statement | ⌘ ⇧ ⏎ |
Ctrl + Shift + Enter |
它能自动补全括号、分号、代码块。
比如你输入:
1 | |
按下语句补全后,IDEA 可以帮你补成:
1 | |
再比如:
1 | |
按下后补分号:
1 | |
这个快捷键看起来不起眼,但非常适合 Java。因为 Java 代码里括号、分号、代码块太多了,手打久了像在给编译器做保姆。
6.4 代码生成:Generate
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Generate | ⌘ N |
Alt + Insert |
| Override Methods | ⌃ O |
Ctrl + O |
| Implement Methods | ⌃ I |
Ctrl + I |
常用生成内容:
- Constructor
- Getter / Setter
- equals / hashCode
- toString
- Override Methods
- Delegate Methods
- Test Method
在 Spring Boot 项目里,建议你少生成 Getter / Setter,多用 Lombok 或 record;但 Override、构造器、测试方法依然非常常用。
6.5 Quick Fix:Alt / Option + Enter 是 IDEA 的神键
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Show Intention Actions | ⌥ ⏎ |
Alt + Enter |
常见场景:
- 自动导包;
- 创建不存在的类;
- 创建不存在的方法;
- 创建局部变量;
- 转换 lambda / method reference;
- 添加
throws或 try-catch; - 修复泛型推断问题;
- 替换为更简洁的表达式;
- Spring 注入、Bean、配置相关提示。
实战示例:
1 | |
如果 orderAssembler 不存在,把光标放上去,按 Alt / Option + Enter,IDEA 可能会提供:
- Create field
orderAssembler - Create local variable
- Create parameter
这就是 IDEA 和普通编辑器最大的区别之一:它理解你的代码结构,而不是只替你补字母。
7. 重构:不要手动改名,不要全局替换
手动全局替换是事故高发地。IDEA 的重构能力很强,该用就用。
7.1 Rename:安全改名
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Rename | ⇧ F6 |
Shift + F6 |
适合:
- 类名;
- 方法名;
- 字段名;
- 参数名;
- 包名;
- 文件名;
- Spring Bean 名称相关引用。
示例:
1 | |
把 calAmount 改成 calculateAmount,不要搜索替换。用 Rename,IDEA 会处理调用方、测试类、接口实现等引用。
7.2 Extract:抽变量、抽方法、抽字段
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Extract Variable | ⌘ ⌥ V |
Ctrl + Alt + V |
| Extract Method | ⌘ ⌥ M |
Ctrl + Alt + M |
| Extract Field | ⌘ ⌥ F |
Ctrl + Alt + F |
| Extract Parameter | ⌘ ⌥ P |
Ctrl + Alt + P |
抽方法示例:
1 | |
选中计算逻辑,抽成:
1 | |
再由主流程调用:
1 | |
这比你手动剪切粘贴安全太多,IDEA 会帮你分析入参、返回值、局部变量作用域。
7.3 Refactor This:重构总入口
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Refactor This | ⌃ T |
Ctrl + Alt + Shift + T |
当你不知道具体快捷键时,用这个菜单。常见选项:
- Rename
- Move
- Copy
- Safe Delete
- Extract Method
- Extract Interface
- Change Signature
- Inline
7.4 Change Signature:修改方法签名
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Change Signature | ⌘ F6 |
Ctrl + F6 |
适合场景:
- 方法新增参数;
- 调整参数顺序;
- 修改参数名;
- 修改返回类型;
- 调整调用方默认值。
手动改方法签名容易漏调用方。Change Signature 可以让 IDEA 帮你统一更新。
8. 调试:键盘调试比鼠标点按钮快很多
8.1 Run / Debug 基础
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Run context configuration | ⌃ R |
Shift + F10 |
| Debug context configuration | ⌃ D |
Shift + F9 |
| Run Anything | 双击 ⌃ |
双击 Ctrl |
| Stop | ⌘ F2 |
Ctrl + F2 |
| Run 工具窗口 | ⌘ 4 |
Alt + 4 |
| Debug 工具窗口 | ⌘ 5 |
Alt + 5 |
| Services 工具窗口 | ⌘ 8 |
Alt + 8 |
Spring Boot 项目常用方式:
- 光标放到启动类;
- 使用 Run / Debug context configuration;
- 修改代码后重新运行;
- 使用 Services 工具窗口管理多个服务。
8.2 断点与单步调试
| 操作 | macOS | Windows / Linux | 说明 |
|---|---|---|---|
| Toggle Line Breakpoint | ⌘ F8 |
Ctrl + F8 |
打 / 取消断点 |
| View Breakpoints | ⌘ ⇧ F8 |
Ctrl + Shift + F8 |
查看全部断点 |
| Step Over | F8 |
F8 |
跳过方法内部 |
| Step Into | F7 |
F7 |
进入方法 |
| Smart Step Into | ⇧ F7 |
Shift + F7 |
一行多个方法时选择进入哪个 |
| Step Out | ⇧ F8 |
Shift + F8 |
跳出当前方法 |
| Resume Program | ⌘ ⌥ R |
F9 |
继续执行 |
| Run to Cursor | ⌥ F9 |
Alt + F9 |
运行到光标处 |
| Evaluate Expression | ⌥ F8 |
Alt + F8 |
计算表达式 |
调试建议:
- 一行代码多个方法调用时,用
Smart Step Into,不要狂按 Step Into; - 临时看某个表达式,用
Evaluate Expression,不要到处加日志; - 条件复杂时,用条件断点,不要让程序停 1000 次;
- 看集合内容时,善用 Evaluate Expression 过滤数据。
8.3 条件断点实战
假设你只想在某个订单号时停下来:
1 | |
断点条件可以写:
1 | |
这样只有目标订单才会停。否则循环里打断点,IDEA 会像门卫一样每个人都拦,调试体验直接爆炸。
9. Git:用键盘完成 diff、提交与推送
9.1 Git 高频快捷键
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Commit | ⌘ K |
Ctrl + K |
| Push | ⌘ ⇧ K |
Ctrl + Shift + K |
| Update Project / Pull | ⌘ T |
Ctrl + T |
| VCS Operations Popup | ⌃ V |
`Alt + `` |
| Version Control / Git 窗口 | ⌘ 9 |
Alt + 9 |
| Commit 窗口 | ⌘ 0 |
Alt + 0 |
| Show Diff | ⌘ D |
Ctrl + D |
| Rollback | ⌘ ⌥ Z |
Ctrl + Alt + Z |
9.2 推荐提交流程
sequenceDiagram
participant Dev as Developer
participant IDEA as IntelliJ IDEA
participant Git as Git Repository
Dev ->> IDEA: 修改代码
Dev ->> IDEA: 打开 Commit 窗口
IDEA ->> Dev: 展示 changed files
Dev ->> IDEA: 查看 Diff
Dev ->> IDEA: 选择本次要提交的文件 / chunk
Dev ->> IDEA: 填写 commit message
IDEA ->> Git: Commit
Dev ->> IDEA: Push
IDEA ->> Git: Push to remote
建议养成习惯:
- 每次提交前用键盘打开 Commit 窗口;
- 逐个文件看 diff;
- 不要把格式化、业务改动、临时日志混在一个 commit;
- 用 changelist 或 staging area 拆分提交;
- 提交前运行测试或至少跑核心模块编译。
9.3 Diff 审查技巧
打开 Commit 窗口后:
- 用方向键选择文件;
- 用
Show Diff查看差异; - 用
F7 / Shift + F7在差异之间跳转; - 不该提交的文件直接排除;
- 临时代码、debug 日志、无意义格式化要撤回。
不要相信“我只是小改一下”。线上事故最爱躲在“小改一下”里。
10. Terminal 与 Run Anything:命令也别离开 IDEA
10.1 打开 Terminal
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Terminal | ⌥ F12 |
Alt + F12 |
常用命令:
1 | |
建议:
- 简单命令用 Terminal;
- 项目运行用 Run Configuration;
- 多服务管理用 Services;
- Maven / Gradle 任务可以用 Run Anything 或工具窗口。
10.2 Run Anything
| 操作 | macOS | Windows / Linux |
|---|---|---|
| Run Anything | 双击 ⌃ |
双击 Ctrl |
可以运行:
1 | |
Run Anything 的好处是不用先打开 Terminal,适合执行项目内常见任务。
11. Maven / Gradle / Spring Boot 场景下的键盘流
11.1 新增一个 Spring Boot 接口
假设需求是新增“查询订单详情”接口。
推荐键盘流:
flowchart TB
A[Search Everywhere 找 OrderController] --> B[Generate 或手写接口方法]
B --> C[Alt/Option + Enter 创建缺失 DTO / Command]
C --> D[Go to Service 实现业务逻辑]
D --> E[Extract Method 拆分复杂逻辑]
E --> F[Go to Test 创建或跳转测试]
F --> G[Run context test]
G --> H[Commit 窗口看 Diff]
H --> I[Commit & Push]
具体操作:
- 双击
Shift,输入OrderController; ⌘ B / Ctrl+B跳 Service;Alt / Option + Enter创建缺失方法;⌘ ⌥ M / Ctrl+Alt+M抽方法;⌘ ⇧ T / Ctrl+Shift+T跳测试;Run context跑测试;Commit查看 diff;Push推送。
11.2 修改一个已有 bug
推荐路径:
1 | |
对应快捷键:
| 步骤 | 快捷键 |
|---|---|
| 找类 / 文件 | 双击 Shift 或 Go to Class/File |
| 找方法 | Go to Symbol |
| 查调用方 | Find Usages |
| 打断点 | Toggle Line Breakpoint |
| Debug | Debug context configuration |
| 单步 | F7 / F8 / Shift+F7 / Shift+F8 |
| 看表达式 | Evaluate Expression |
| 回到修改点 | Last Edit Location |
| 提交 | Commit |
12. 多光标与批量编辑
多光标适合局部文本处理,但不要滥用。能用结构化重构时,优先用重构。
常见能力:
| 操作 | macOS | Windows / Linux |
|---|---|---|
| 选择下一个相同词 | ⌃ G |
Alt + J |
| 取消选择上一个 | ⌃ ⇧ G |
Alt + Shift + J |
| 选择所有相同词 | ⌃ ⌘ G |
Ctrl + Alt + Shift + J |
| 列选择模式 | ⌘ ⇧ 8 |
Alt + Shift + Insert |
适合场景:
- 批量改局部变量前缀;
- 编辑多行相似配置;
- 处理 SQL 字段列表;
- 临时整理日志字段。
不适合场景:
- 改方法名;
- 改类名;
- 改包名;
- 改公开 API;
- 改大范围业务引用。
这些应该用 Rename / Change Signature / Move 等重构能力。
13. Project 窗口也可以无鼠标使用
打开 Project:
- macOS:
⌘ 1 - Windows / Linux:
Alt + 1
常用操作:
| 操作 | 说明 |
|---|---|
| 方向键 | 移动选择 |
| Enter | 打开文件 |
| Delete | 删除文件,慎用 |
| F2 / Shift+F2 | 在错误之间跳转,部分上下文也可重命名 |
| 新建文件 | 使用 New 动作或 Project 窗口中的 New |
| Select In | 从当前文件定位到 Project 树 |
Select In 非常实用:
- macOS:
⌥ F1 - Windows / Linux:
Alt + F1
场景:当前打开一个类,想知道它在项目目录哪里,用 Select In -> Project View,比自己翻目录快很多。
14. 插件推荐:只装真正提升键盘流的
14.1 Key Promoter X
作用:当你用鼠标点击某个 IDEA 动作时,它会提示对应快捷键。
适合:正在训练无鼠标开发的人。
使用建议:
- 前两周打开,让它提醒你;
- 高频提醒的动作优先记;
- 形成习惯后可以关闭或降低打扰;
- 不要为了“全绿统计”强迫自己记低频快捷键。
14.2 Presentation Assistant
作用:展示你触发的快捷键。
适合:
- 录教程;
- 团队分享;
- 带新人;
- 自己复盘操作习惯。
14.3 IdeaVim
IdeaVim 是把 Vim 编辑模式带到 JetBrains IDE 里的插件。它很强,但不建议所有人一开始就上。
适合:
- 已经熟悉 Vim;
- 希望使用模式编辑;
- 经常在终端、服务器、IDE 之间切换;
- 愿意维护
.ideavimrc。
不适合:
- IDEA 基础快捷键还不熟;
- 不知道 normal / insert / visual mode 是什么;
- 只是听说“高手都用 Vim”;
- 怕配置和快捷键冲突。
推荐路线:
flowchart LR
A[IDEA 默认快捷键熟练] --> B[掌握导航 / 重构 / 调试]
B --> C[再尝试 IdeaVim]
C --> D[只保留真正高频的 Vim 映射]
15. 推荐自定义快捷键
默认快捷键已经够用,但可以补几个你个人高频动作。
建议自定义:
| 动作 | 原因 |
|---|---|
| Maven Reload Project | Maven 项目经常刷新依赖 |
| Gradle Reload Project | Gradle 项目常用 |
| Optimize Imports | 有些人希望单独触发 |
| Run Inspection by Name | 大项目质量检查好用 |
| Pin Active Tab | 固定关键文件 |
| Close All Unmodified Editors | 清理 tab 很方便 |
| Show Database Window | 使用 IDEA 数据库工具时高频 |
| Show Services | 微服务 / Docker / Spring Boot 多配置常用 |
自定义原则:
- 高频动作才配快捷键;
- 不要覆盖默认核心快捷键;
- 尽量保持 Mac / Windows 语义一致;
- 团队共享电脑或结对编程时,不要依赖过度私有化配置;
- 用 Settings Sync 同步个人配置,但项目规范不要藏在个人 IDE 里。
16. 七天训练计划
Day 1:入口与搜索
目标:不再从 Project 树翻文件。
练习:
- 双击
Shift找类; - 找
application.yml; - 找
pom.xml; - 用 Find Action 找
Reformat Code; - 用 Recent Files 在 5 个文件之间切换。
验收标准:能在 3 秒内打开任意已知类或文件。
Day 2:代码跳转
目标:理解代码关系。
练习:
- Controller -> Service;
- Service -> Repository;
- Interface -> Implementation;
- Method -> Find Usages;
- 返回上一个位置。
验收标准:不靠鼠标完成一次完整调用链阅读。
Day 3:编辑与生成
目标:减少手写样板代码。
练习:
- Generate 构造器;
- Implement Methods;
- Complete Statement;
- Move Statement;
- Extend Selection;
- Surround With。
验收标准:新增一个简单接口时基本不碰鼠标。
Day 4:Quick Fix
目标:熟练使用 Alt / Option + Enter。
练习:
- 自动导包;
- 创建缺失类;
- 创建缺失方法;
- 添加 try-catch;
- 简化表达式;
- 查看 intention preview。
验收标准:遇到红线第一反应不是手改,而是 Quick Fix。
Day 5:重构
目标:拒绝手动全局替换。
练习:
- Rename 方法;
- Extract Method;
- Extract Variable;
- Change Signature;
- Safe Delete。
验收标准:能用快捷键完成一次 Service 方法拆分。
Day 6:调试
目标:键盘完成 Debug。
练习:
- 打断点;
- Debug 启动;
- F7 / F8 / Shift+F7 / Shift+F8;
- Evaluate Expression;
- 条件断点;
- Run to Cursor。
验收标准:能不碰鼠标完成一次接口断点排查。
Day 7:Git 与提交流程
目标:键盘完成提交审查。
练习:
- 打开 Commit;
- 查看 Diff;
- 选择提交文件;
- 写 commit message;
- Commit;
- Push。
验收标准:能用键盘完成一次干净的提交。
17. 进阶训练:一天工作流示例
上午:接需求
1 | |
中午:写代码
1 | |
下午:调试
1 | |
下班前:提交
1 | |
这就是一个可持续的无鼠标开发闭环。
18. 常见误区
18.1 误区一:背快捷键大全
快捷键大全没有错,但你不应该从大全开始。你应该从真实场景开始:
- 我现在要找文件,用什么?
- 我现在要跳实现,用什么?
- 我现在要改名,用什么?
- 我现在要抽方法,用什么?
- 我现在要提交,用什么?
每个问题对应一个动作,动作重复 20 次后才会成为肌肉记忆。
18.2 误区二:为了不用鼠标而不用鼠标
有些操作鼠标更快,比如:
- 第一次配置 SDK;
- 配置复杂 Run Configuration;
- 调整窗口布局;
- 查看复杂可视化图表;
- 数据库表结构可视化操作。
无鼠标开发不是宗教。键盘是工具,鼠标也是工具。核心标准只有一个:哪个更快、更稳、更不打断思路,就用哪个。
18.3 误区三:把所有动作都改成自己的快捷键
过度自定义会带来三个问题:
- 换电脑不适应;
- 同事帮你看问题时一脸懵;
- 官方教程和你的环境对不上。
推荐策略:默认快捷键为主,少量高频动作自定义。
18.4 误区四:装 IdeaVim 就等于效率高
IdeaVim 很强,但它是乘法器,不是灵丹妙药。
如果你 IDEA 的导航、重构、调试、Git 都不熟,直接上 Vim 模式,可能只是把“不会用 IDEA”升级成“更优雅地不会用 IDEA”。
19. 我的快捷键分层清单
19.1 必须掌握
| 场景 | 动作 |
|---|---|
| 搜索 | Search Everywhere、Find Action、Recent Files |
| 导航 | Go to Declaration、Go to Implementation、Find Usages、Back |
| 编辑 | Generate、Complete Statement、Reformat、Extend Selection |
| 修复 | Intention Actions |
| 重构 | Rename、Extract Method、Refactor This |
| 调试 | Debug、Step Over、Step Into、Evaluate Expression |
| Git | Commit、Push、Show Diff |
19.2 建议掌握
| 场景 | 动作 |
|---|---|
| 项目结构 | File Structure、Select In、Structure Window |
| 代码质量 | Run Inspection by Name、Next Highlighted Error |
| 运行 | Run Anything、Services、Terminal |
| Git | Rollback、VCS Operations Popup、Git Log |
| 测试 | Go to Test、Run Test、Debug Test |
19.3 进阶掌握
| 场景 | 动作 |
|---|---|
| 批量编辑 | Multiple Carets、Column Selection |
| 重构 | Change Signature、Inline、Move、Safe Delete |
| 调试 | Conditional Breakpoint、Smart Step Into、Run to Cursor |
| 窗口控制 | Hide All Tool Windows、Jump to Last Tool Window |
| 插件 | Key Promoter X、Presentation Assistant、IdeaVim |
20. 一份适合 Java 后端开发者的快捷键速查表
搜索与导航
| 动作 | macOS | Windows / Linux |
|---|---|---|
| Search Everywhere | 双击 Shift |
双击 Shift |
| Find Action | ⌘ ⇧ A |
Ctrl + Shift + A |
| Go to Class | ⌘ O |
Ctrl + N |
| Go to File | ⌘ ⇧ O |
Ctrl + Shift + N |
| Go to Symbol | ⌘ ⌥ O |
Ctrl + Alt + Shift + N |
| Recent Files | ⌘ E |
Ctrl + E |
| Recent Locations | ⌘ ⇧ E |
Ctrl + Shift + E |
| File Structure | ⌘ F12 |
Ctrl + F12 |
| Go to Line | ⌘ L |
Ctrl + G |
| Back | ⌘ ⌥ ← |
Ctrl + Alt + Left |
| Forward | ⌘ ⌥ → |
Ctrl + Alt + Right |
编码
| 动作 | macOS | Windows / Linux |
|---|---|---|
| Basic Completion | ⌃ Space |
Ctrl + Space |
| Smart Completion | ⌃ ⇧ Space |
Ctrl + Shift + Space |
| Complete Statement | ⌘ ⇧ ⏎ |
Ctrl + Shift + Enter |
| Show Intention | ⌥ ⏎ |
Alt + Enter |
| Generate | ⌘ N |
Alt + Insert |
| Reformat Code | ⌘ ⌥ L |
Ctrl + Alt + L |
| Optimize Imports | ⌃ ⌥ O |
Ctrl + Alt + O |
| Comment Line | ⌘ / |
Ctrl + / |
| Comment Block | ⌘ ⌥ / |
Ctrl + Shift + / |
| Surround With | ⌘ ⌥ T |
Ctrl + Alt + T |
重构
| 动作 | macOS | Windows / Linux |
|---|---|---|
| Refactor This | ⌃ T |
Ctrl + Alt + Shift + T |
| Rename | ⇧ F6 |
Shift + F6 |
| Change Signature | ⌘ F6 |
Ctrl + F6 |
| Extract Variable | ⌘ ⌥ V |
Ctrl + Alt + V |
| Extract Method | ⌘ ⌥ M |
Ctrl + Alt + M |
| Extract Field | ⌘ ⌥ F |
Ctrl + Alt + F |
| Extract Parameter | ⌘ ⌥ P |
Ctrl + Alt + P |
| Inline | ⌘ ⌥ N |
Ctrl + Alt + N |
| Safe Delete | ⌘ ⌦ |
Alt + Delete |
调试
| 动作 | macOS | Windows / Linux |
|---|---|---|
| Run | ⌃ R |
Shift + F10 |
| Debug | ⌃ D |
Shift + F9 |
| Stop | ⌘ F2 |
Ctrl + F2 |
| Toggle Breakpoint | ⌘ F8 |
Ctrl + F8 |
| View Breakpoints | ⌘ ⇧ F8 |
Ctrl + Shift + F8 |
| Step Over | F8 |
F8 |
| Step Into | F7 |
F7 |
| Smart Step Into | ⇧ F7 |
Shift + F7 |
| Step Out | ⇧ F8 |
Shift + F8 |
| Resume | ⌘ ⌥ R |
F9 |
| Evaluate Expression | ⌥ F8 |
Alt + F8 |
Git 与窗口
| 动作 | macOS | Windows / Linux |
|---|---|---|
| Project | ⌘ 1 |
Alt + 1 |
| Run Window | ⌘ 4 |
Alt + 4 |
| Debug Window | ⌘ 5 |
Alt + 5 |
| Services | ⌘ 8 |
Alt + 8 |
| Git Window | ⌘ 9 |
Alt + 9 |
| Commit Window | ⌘ 0 |
Alt + 0 |
| Terminal | ⌥ F12 |
Alt + F12 |
| Commit | ⌘ K |
Ctrl + K |
| Push | ⌘ ⇧ K |
Ctrl + Shift + K |
| Update Project | ⌘ T |
Ctrl + T |
| Hide Active Tool Window | ⇧ ⎋ |
Shift + Escape |
| Hide All Tool Windows | ⌘ ⇧ F12 |
Ctrl + Shift + F12 |
21. 适合团队推广的方式
如果你想在团队里推广无鼠标开发,不要直接丢一张快捷键表。更好的方式是:
- 先统一 Keymap,不要人人一套;
- 做一次 30 分钟内部分享,只讲 20 个高频快捷键;
- 每周挑一个场景训练,比如“本周只训练 Git diff 和 commit”;
- 鼓励安装 Key Promoter X,但不要强制;
- 在 Code Review 中鼓励使用 Rename / Extract Method,而不是手工改;
- 把团队高频动作整理成一页 Cheatsheet;
- 新人入职时直接给一份 IDEA 工作流文档。
团队真正需要的不是“每个人都像黑客一样噼里啪啦敲键盘”,而是:
- 找代码更快;
- 改代码更稳;
- 重构更安全;
- 提交更干净;
- 排查问题更高效。
22. 最终建议
把鼠标从主力工具降级成辅助工具,把键盘升级成开发流程的主控台。
学习路线可以很简单:
flowchart LR
A[记住 Search Everywhere] --> B[记住 Recent Files]
B --> C[记住 Alt/Option + Enter]
C --> D[记住 Rename 和 Extract Method]
D --> E[记住 Debug 快捷键]
E --> F[记住 Commit / Push]
F --> G[形成自己的键盘流]
你不需要一天掌握所有快捷键。每天少碰一点鼠标,每周多固定几个动作,一个月后你的 IDEA 操作方式就会明显变快。
真正的效率提升,往往不是来自“多学一个神奇插件”,而是来自这些不起眼的基础动作被你练成了本能。所谓高手,不过是把别人还在想的动作,提前练成了反射。
参考资料
- JetBrains IntelliJ IDEA Documentation: Keyboard shortcuts
https://www.jetbrains.com/help/idea/mastering-keyboard-shortcuts.html - JetBrains IntelliJ IDEA Documentation: Predefined macOS keymap
https://www.jetbrains.com/help/idea/reference-keymap-mac-default.html - JetBrains IntelliJ IDEA Documentation: Predefined Windows keymap
https://www.jetbrains.com/help/idea/reference-keymap-win-default.html - JetBrains IntelliJ IDEA Documentation: Search Everywhere
https://www.jetbrains.com/help/idea/searching-everywhere.html - JetBrains IntelliJ IDEA Documentation: Configure keyboard shortcuts
https://www.jetbrains.com/help/idea/configuring-keyboard-and-mouse-shortcuts.html - JetBrains IntelliJ IDEA Documentation: Refactoring source code
https://www.jetbrains.com/help/idea/refactoring-source-code.html - JetBrains IntelliJ IDEA Documentation: Intention actions
https://www.jetbrains.com/help/idea/intention-actions.html - JetBrains IntelliJ IDEA Documentation: Step through the program
https://www.jetbrains.com/help/idea/stepping-through-the-program.html - JetBrains IntelliJ IDEA Documentation: Commit and push changes
https://www.jetbrains.com/help/idea/commit-and-push-changes.html - JetBrains IntelliJ IDEA Documentation: Terminal
https://www.jetbrains.com/help/idea/terminal-emulator.html - JetBrains IntelliJ IDEA Documentation: IdeaVim
https://www.jetbrains.com/help/idea/using-product-as-the-vim-editor.html - JetBrains Marketplace: Key Promoter X
https://plugins.jetbrains.com/plugin/9792-key-promoter-x
启示录
快不是目的,稳才是目的。快捷键练到最后,不是为了显得像高手,而是为了让脑子少被工具打断。
能成功于千载者,必以近察远。