3323 字
约 11 分钟
8
S01-B05 · IDEA 快捷键与效率动作

适用读者:已经配好界面(S01-B04),想让手不离键盘的人;以及"某个快捷键突然没反应"的人。
前置:S01-B04。
实测环境:IDEA 2025.x 键位(文档口径);旧文表为 2021–2022 版,键位冲突处已标注。
覆盖旧文:A-1368(Windows 键位,181 点)、A-1369(macOS 键位,144 点)、A-1363(快速生成代码,98 点)、A-1364(全局搜索,21 点)、A-1365(格式化,26 点)、A-1370(快捷键失效与冲突,40 点)= 510 点。
上一篇:S01-B04 · IDEA 基本功:界面、视图、外观与编码习惯
下一篇:S01-B06 · IDEA 插件:安装、选型与成本。

标注约定:Win 列为 Windows/Linux 键位,Mac 列为 macOS 键位。个别键位随版本微调,实际以 Settings → Keymap 搜索框为准(本文 §6 会教你查)。


1. 一句话结论

别背键位,背"动作"。 旧文两张表合计 325 条,其中真正每天用到的不到 20 个;把这 20 个练成肌肉记忆,其余按需在 Keymap 里搜。

这个顺序很重要:先知道有这个动作,再去找键位;反过来(先背键位)会出现"手会按,但不知道该在什么时候用"。


2. 20 个动作(覆盖日常 90% 的操作)

# 动作 Win Mac 什么时候用
1 到处搜(文件/类/符号/动作/设置) Shift Shift Shift Shift 找任何东西的第一反应
2 全项目文本搜索 Ctrl+Shift+F ⌘⇧F 找字符串、配置项、报错文案
3 文件内查找/替换 Ctrl+F / Ctrl+R ⌘F / ⌘R 局部改动
4 跳转到定义 Ctrl+B 或 Ctrl+左键 ⌘B / ⌘+点击 读源码的入口
5 查被谁调用 Alt+F7 ⌥F7 改方法前必做
6 快速看定义(不跳走) Ctrl+Shift+I ⌥Space 瞥一眼实现
7 后退 / 前进 Ctrl+Alt+← / → ⌘⌥← / → 跳转乱了之后复位
8 最近文件 Ctrl+E ⌘E 在几个文件间来回切
9 万能修复 Alt+Enter ⌥↩ 报红、缺 import、语法提示
10 自动补全(基础) Ctrl+Space ⚠ ⌃Space ⚠ ⚠ 常被输入法占用,见 §6
11 补全(智能类型) Ctrl+Shift+Space ⌃⇧Space 只补类型匹配的候选
12 生成代码(构造/Getter/Override…) Alt+Insert ⌘N 建类之后第一件事
13 包围(try/catch、if…) Ctrl+Alt+T ⌘⌥T 给已有代码套结构
14 格式化 Ctrl+Alt+L ⌘⌥L 提交前
15 优化 import Ctrl+Alt+O ⌃⌥O 提交前(与格式化配对)
16 重命名(语义级) Shift+F6 ⇧F6 改名字别手工替换
17 提取变量 / 方法 Ctrl+Alt+V / Ctrl+Alt+M ⌘⌥V / ⌘⌥M 把长表达式拆开
18 行操作(上下移/复制/删除) Alt+Shift+↑↓ / Ctrl+D / Ctrl+Y ⌥⇧↑↓ / ⌘D / ⌘⌫ 排版与试错
19 运行 / 调试 Shift+F10 / Shift+F9 ⌃R / ⌃D 主循环
20 断点(行断点 / 表达式求值) Ctrl+F8 / Alt+F8 ⌘F8 / ⌥F8 调试入门(深水区见 J04)

练习法:一天只练 1 个动作,把它对应的鼠标路径禁掉。一周就能拿下 7 个,三周覆盖全表。这比"背速查表"有效得多。


3. 搜索是最高频的动作,值得单独练

想找什么 用什么 说明
文件 Shift Shift → 输入文件名 支持模糊匹配:usvc 能匹到 UserService
类 Ctrl+N 只搜类
符号(方法/字段) Ctrl+Shift+Alt+N 跳到某个方法
动作/命令 Shift Shift → 输入动作名(如 reformat) 不知道键位时就用这个,等同于"用自然语言找命令"
设置项 Shift Shift → 输入设置名 不用记菜单位置
某段文本 Ctrl+Shift+F 全项目
当前文件结构 Ctrl+F12 大文件里跳方法最快

第 4 行是旧文没提但最有价值的一条:记不住"格式化"按什么?双击 Shift 输入 reformat 回车即可。IDEA 的键位学习曲线因此可以平缓很多。


4. 代码生成:psvm / sout 之外还有一套

4.1 Live Template 缩写(敲完按回车/Tab)

输入 生成
psvm 或 main public static void main(String[] args) {}
sout System.out.println()
soutv System.out.println("var = " + var)
fori for (int i = 0; i < ; i++) {}
iter 增强 for 遍历数组/集合
ifn if (obj == null) {}
prsf / psf private static final / public static final
thr throw new

来源:Settings → Editor → Live Templates → Java(A-1363 指出这一点)。

记不住缩写:Ctrl+J(macOS ⌃J)弹出当前上下文可用的模板列表——这是 A-1363 里最实用的一句,容易被忽略。

4.2 结构化生成:Alt+Insert(⌘N)

在类内任意位置按下,可生成:构造器、Getter/Setter、toString()、equals()/hashCode()、重写方法、测试类、委托方法。

equals/hashCode 一起生成:只生成其中之一是典型错误(HashMap 行为会错)。

4.3 包围:Ctrl+Alt+T(⌘⌥T)

选中代码 → 套 if、try/catch、for、synchronized、Runnable。比手写括号快,且自动补全结构。

4.4 自定义模板

Settings → Editor → Live Templates → +:比如团队常用的 log 模板(private static final Logger log = LoggerFactory.getLogger($CLASS$.class);)。自定义模板是"团队约定"(S01-B04 §5),做完要能同步给别人。


5. 格式化与重排:提交前的两条命令

动作 Win Mac 作用范围
Reformat Code Ctrl+Alt+L ⌘⌥L 当前文件 / 选中 / 整个目录
Optimize Imports Ctrl+Alt+O ⌃⌥O 删未使用 + 按规则排序
Auto-Indent Lines Ctrl+Alt+I ⌃⌥I 只修缩进,不动换行

顺序:Optimize Imports → Reformat Code → git diff 自查。两者都用,diff 才干净。

前提:格式化的结果取决于 Code Style(S01-B04 §5)。团队里有人没导入同一份 Code Style,就会出现"我格式化完,他提交时又变回去"的拉锯。


6. 快捷键失效:三层排查法

旧文 A-1370 只讲了"去输入法/QQ/微信里取消热键",覆盖了第一层。完整的三层是:

第一层:本机软件抢了热键

常见劫持者 典型被抢的键 处置
搜狗/微软拼音等输入法 Ctrl+Space(中英切换)、Ctrl+Shift+* 输入法设置 → 系统功能快捷键 → 取消或改绑
QQ / 微信 / 钉钉 / TIM Ctrl+Alt+*、截图键 各自设置里关掉全局热键
显卡/录屏/翻译类工具 Alt+*、Ctrl+Shift+* 同上
浏览器扩展 少见于 IDE 内 —

找不到是谁抢的怎么办(Windows):

  1. 在 Settings → Keymap 里右键那个动作 → Remove 再 Add Keyboard Shortcut,按下组合键时如果提示 Conflict,它会列出冲突的动作(IDE 内部冲突)。
  2. 如果是外部程序占用,IDE 不会报冲突——表现为"按了毫无反应"。这时逐个退出常驻托盘程序(输入法→IM→录屏),二分法定位。
  3. 用 Shift Shift 搜动作名,看它是否还有效:动作有效但键位无效 → 键位被抢;动作也搜不到 → IDE 侧问题(插件禁用/版本差异)。

第二层:IDE 内部键位冲突

  • Settings → Keymap 右上角搜索框输入动作名,右侧会显示当前绑定;红色提示表示冲突。
  • keymap 选错:Keymap 下拉里有 Windows / macOS / Eclipse / VS Code 等。装了 IdeaVim 或 Eclipse keymap 插件后键位会整体变化——这是"昨天还好今天全乱"的最常见原因。

第三层:焦点不在编辑器上

  • 焦点在 Terminal 工具窗时,Ctrl+R、Ctrl+C 等会被 shell 截获(Ctrl+C 是中断进程)。
  • 焦点在 Project 树、Run 窗口 时,键位含义不同。
  • 判断法:看光标是否在编辑区闪烁;不在就 Esc 或点一下编辑区。

一句话排障:先确认焦点,再查冲突,最后怀疑插件。


7. 旧文对照

旧文 内容 本篇处理
A-1368 Windows 键位表(158 行,按修饰键分组) 核心 20 个动作抽成 §2;完整分组表压进附录 A(保留结构,删去纯菜单项重复条目)
A-1369 macOS 键位表(119 行)+ 符号图例 附录 A 与 Windows 并列;符号图例(⌘⇧⌥⌃)保留在附录 A 表头
A-1363 psvm/sout/main/Ctrl+J/Live Templates §4 重组为"缩写表 + 结构化生成 + 自定义",补 Alt+Insert、Ctrl+Alt+T、equals/hashCode 提醒
A-1364 全局搜索 并入 §3 搜索矩阵,新增"搜动作名"这条关键用法
A-1365 格式化快捷键 §5,补"与 Optimize Imports 配对 + Code Style 前提"
A-1370 快捷键失效(输入法、IM) 升级为 §6 三层排查,补 IDE 内部冲突与焦点层
— 旧文没有"动作导向"的学习法 新增 §1 结论与练习法

8. 自测

  1. 你忘了"格式化"的快捷键,不查文档怎么在 3 秒内执行它?
  2. Ctrl+Space 按了没反应,最可能的两个原因是什么?分别怎么验证?
  3. 为什么建议 equals() 与 hashCode() 一起生成?
  4. 装了 IdeaVim 后 Ctrl+R 行为变了,属于哪一层问题?
  5. 一天练 1 个动作 vs 一周背完 20 个,哪个留存率高?为什么?

9. 下一篇

S01-B06 · IDEA 插件:安装、选型与成本

键位练熟之后,很多人会开始"装插件"。但插件是唯一能同时影响启动速度、索引时间、键位冲突、内存占用的东西。下一篇给一套三维打分法(增益 / 成本 / 冲突),并把旧文里 40+ 个插件推荐压缩成"值得留 / 可试 / 别装"三档。


附录 A · 键位总表

数据来源:A-1368(Windows)、A-1369(macOS),按修饰键分组保留,已删除纯菜单重复项。实际以 Settings → Keymap 为准。

macOS 符号对照:⌘ Command | ⇧ Shift | ⌥ Option(Alt) | ⌃ Control | ↩ Enter | ⌫ Delete | ⌦ Fn+Delete | ⎋ Esc

A.1 导航与搜索

动作 Win Mac
到处搜 Shift Shift ⇧⇧
搜类 Ctrl+N ⌘O
搜文件 Ctrl+Shift+N ⌘⇧O
全项目文本 Ctrl+Shift+F ⌘⇧F
文件内查找 Ctrl+F ⌘F
文件内替换 Ctrl+R ⌘R
跳到定义 Ctrl+B ⌘B
查用例 Alt+F7 ⌥F7
当前文件结构 Ctrl+F12 ⌘F12
最近文件 Ctrl+E ⌘E
文件内跳行 Ctrl+G ⌘L
后退/前进 Ctrl+Alt+←/→ ⌘⌥←/→
到文件头/尾 Ctrl+Home/End ⌘↑/⌘↓

A.2 编辑

动作 Win Mac
撤销 Ctrl+Z ⌘Z
删除当前行 Ctrl+Y ⌘⌫
复制当前行到下方 Ctrl+D ⌘D
整行上下移动 Alt+Shift+↑/↓ ⌥⇧↑/↓
递进选择代码块 Ctrl+W ⌥↑(Expand)
行注释切换 Ctrl+/ ⌘/
块注释 Ctrl+Shift+/ ⌘⌥/
光标处单词删除 Ctrl+Backspace ⌥⌫
大小写切换 Ctrl+Shift+U ⌘⇧U
展开/折叠代码 Ctrl++ / Ctrl+- ⌘+ / ⌘-
全部折叠 Ctrl+Shift+- ⌘⇧-

A.3 重构与生成

动作 Win Mac
重命名 Shift+F6 ⇧F6
提取变量 Ctrl+Alt+V ⌘⌥V
提取方法 Ctrl+Alt+M ⌘⌥M
内联 Ctrl+Alt+N ⌘⌥N
生成代码 Alt+Insert ⌘N
包围 Ctrl+Alt+T ⌘⌥T
重写/实现 Ctrl+O / Ctrl+I ⌃O / ⌃I
格式化 Ctrl+Alt+L ⌘⌥L
优化 import Ctrl+Alt+O ⌃⌥O

A.4 运行与调试

动作 Win Mac
运行 Shift+F10 ⌃R
调试 Shift+F9 ⌃D
停止 Ctrl+F2 ⌘F2
步过 / 步入 / 步出 F8 / F7 / Shift+F8 F8 / F7 / ⇧F8
继续 F9 ⌥⌘R
切换行断点 Ctrl+F8 ⌘F8
求值表达式 Alt+F8 ⌥F8
查看所有断点 Ctrl+Shift+F8 ⌘⇧F8

A.5 视图与工具窗

动作 Win Mac
Project Alt+1 ⌘1
Run / Debug Alt+4 / Alt+5 ⌘4 / ⌘5
Terminal Alt+F12 ⌥F12
Git Alt+9 ⌘9
Structure Alt+7 ⌘7
复位布局 Shift+F12 ⇧F12
最大化工具窗 Ctrl+Shift+F12 ⌘⇧F12

完整键位(含 Ctrl+Alt、Ctrl+Shift 各组共 300+ 条)以 Settings → Keymap 或官方键位文档 为准;本文只保留"动作能找到、键位能用"的最小集。


本篇属于系列《S01 · 开发环境与工具链》。旧文来源:A-1363/1364/1365/1368/1369/1370;点位映射见 ../coverage.csv。

S01-B05 · IDEA 快捷键与效率动作
https://www.clxhxhhr.top/posts/5159/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。