适用读者:IDE 已经能跑(S01-B01),但每次换电脑都要重新"摸索一遍设置"的人。
前置:S01-B01(安装与新建项目)。
实测环境:IntelliJ IDEA 2025.x 口径(旧文截图多为 2021–2022 版,界面文案有差异处已标注);JDK 17/21。
覆盖旧文:A-1346、A-1353、A-1354、A-1355、A-1356、A-1360、A-1361、A-1362、A-1367、A-1372(共 318 个原文点位)。
新增扩展:E-S01-010(.editorconfig与团队格式统一)。
上一篇:S01-B03 · Maven 安装、镜像与第一次构建
下一篇:S01-B05 · IDEA 快捷键与效率动作。
标注约定:本篇操作路径按 2025.x 菜单编写;凡未在当前版本逐项点验的,标注「待核」。涉及 Live Template 的 Groovy 脚本属社区通用写法,标注「推断,需自测」。
1. 一句话结论
设置分三类:只影响你的(随便改)、影响别人的(必须进仓库)、只属于这台机器的(必须能一键重建)。分不清这三类,就会出现"我改完设置,同事拉下来全红"和"换电脑重配三天"两种事故。
| 类别 | 例子 | 该放哪 | 判据 |
|---|---|---|---|
| 个人偏好 | 字号、主题、背景图、汉化、Tab 显示方式 | 只在本机 | 改了不影响别人产出的 diff |
| 团队约定 | 缩进 4 空格、行宽 120、import 顺序、注释头格式 | 进仓库(.editorconfig / Code Style XML) |
改了会影响别人提交的代码 |
| 机器相关 | JDK 路径、Maven 本地仓库、Git 可执行文件路径 | 本地配置,且必须有脚本/文档能重建 | 换机器必须变 |
2. 界面分区:四块地方,各有各的用途
┌──────────────────────────────────────────────────────────┐
│ 菜单栏 File Edit View Navigate Code Analyze Refactor … │
├────────────┬──────────────────────────────┬──────────────┤
│ 左:Project │ 中:Editor │ 右:工具窗口 │
│ 项目结构 │ 代码编辑区(可多标签/分屏) │ Maven/DB/ │
│ (树形) │ │ Git/Structure │
├────────────┴──────────────────────────────┴──────────────┤
│ 下:Run / Debug / Terminal / Problems / Services │
└──────────────────────────────────────────────────────────┘
| 区域 | 默认快捷键(Win) | 用途 |
|---|---|---|
| Project 工具窗 | Alt+1 |
源码树;Esc 回到编辑器 |
| Maven 工具窗 | 右侧边栏 | 刷新依赖、跑生命周期(B03 的"Reload All Maven Projects"在这) |
| Run / Debug | Alt+4 |
输出、异常栈、变量 |
| Terminal | Alt+F12 |
内置终端(命令行核查的入口) |
| Structure | Alt+7 |
当前文件的成员列表 |
| Git | Alt+9 |
提交历史、分支、diff |
视图乱了怎么办:Shift+F12(Restore Default Layout)把所有工具窗复位。这是最有用的一条"救命键"。
旧文 A-1346 描述的是"左中右三栏 + 四边工具栏",逻辑正确;2025.x 的默认 UI 把侧边工具窗收成了图标条,
Shift+F12一样有效。
3. 一次性配好:八项个人设置
全部集中在 Settings / Preferences(Ctrl+Alt+S / macOS ⌘,)。按"改完之后一年不用再动"的顺序排:
| # | 设置项 | 路径(2025.x) | 建议值 | 为什么 |
|---|---|---|---|---|
| 1 | 字号 | Editor → Font |
14–16(视屏幕 DPI) | 眼睛成本最高,先调这个 |
| 2 | 主题 | Appearance & Behavior → Appearance → Theme |
Light / Darcula / High contrast 任选 | 与显示器、环境光匹配即可 |
| 3 | 背景图 | Appearance & Behavior → Appearance → Background Image |
建议关闭或 10% 透明度 | 背景图会降低代码对比度,长期看是负收益 |
| 4 | 汉化 | Settings → Plugins → Marketplace 搜 Chinese |
装 JetBrains 官方 Chinese (Simplified) Language Pack |
官方语言包随 IDE 版本更新;第三方汉化插件易与新 UI 冲突 |
| 5 | 行号与分隔线 | Editor → General → Appearance |
勾 Show line numbers、Show method separators |
行号是报错定位的基础(异常栈里的 Main.java:12) |
| 6 | 标签页多行 | Editor → General → Editor Tabs |
取消 Show tabs in one row |
多文件并排时不至于左右滚动找文件 |
| 7 | 代码提示大小写 | Editor → General → Code Completion |
取消 Match case |
敲 str 也能提示 StringUtils |
| 8 | 自动导包 | Editor → General → Auto Import |
勾 Add unambiguous imports on the fly、Optimize imports on the fly |
省掉 Alt+Enter 与残留 import |
3.1 两条容易被忽略的
| 项 | 路径 | 建议 | 说明 |
|---|---|---|---|
| 自动删除无用 import | 同上 Auto Import |
勾 Optimize imports on the fly |
与团队规范里的"禁止未使用 import"配套 |
| 自动保存 | Appearance & Behavior → System Settings → Autosave |
默认即可 | IDE 会自动保存;但 保存 不等于 提交,别混淆 |
旧文勘误:A-1355 讲汉化时用的是第三方汉化插件。当前版本应优先用 官方 Language Pack(
Settings → Plugins → Marketplace搜Chinese,作者 JetBrains)。第三方汉化插件在新 UI 下常出现"部分菜单不翻译/翻译错位",且更新滞后。若已装第三方插件,先卸载再装官方包,避免二者同时生效。
3.2 行首注释缩进(A-1367)
默认行注释 Ctrl+/ 会缩进对齐(注释符号跟在代码缩进后)。若团队规范要求"注释顶格",改:
Editor → Code Style → Java → Code Generation
☐ Line comment at first column ← 取消勾选 = 注释跟在缩进后
☐ Block comment at first column ← 同上,作用于 /* */
这条改动会写进 Code Style XML,属于"团队约定"范畴(见 §5),不是纯个人偏好。
4. 代码模板:类注释与方法注释
注释头是"团队约定",但旧文把它当个人美化技巧讲。这里按"先约定、再落地"的顺序重写。
4.1 类注释:File and Code Templates
路径:Settings → Editor → File and Code Templates → Includes → File Header
/**
* @author ${USER}
* @date ${DATE} ${TIME}
* @version 1.0.0
* @description TODO
*/
要点:
File Header是公共片段,被所有模板(Class、Interface、Enum…)引用(旧文 A-1372 讲的Header.java就是它)。${USER}取系统用户名;团队规范里通常要求填工号或真实姓名,那就写死或用自定义变量。${DATE}/${TIME}是内置变量;变量列表见Help → Edit Custom VM Options旁边的模板变量文档(File | Settings | Editor | File and Code Templates面板右下角有?)。
4.2 方法注释:Live Template
Settings → Editor → Live Templates → + → Template Group(建 Java 组)→ + → Live Template:
| 字段 | 值 |
|---|---|
| Abbreviation | * |
| Description | method doc |
| Template text | 见下 |
| Applicable in | Java → Declaration |
| Expand with | Enter |
**
* $description$
$params$
* @return $return$
*/
变量填充(Edit variables):
| 变量 | 表达式 |
|---|---|
description |
手动输入 |
params |
Groovy 脚本(下表) |
return |
methodReturnType() |
params 的社区通用 Groovy 脚本(推断,需自测:脚本对重载方法、泛型参数的输出格式可能需微调):
groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] == '') return result; result+='\\n * @param ' + params[i] + ' '}; return result", methodParameters())
用法:在方法上方敲 /** 然后输入 * 回车(或按模板缩写触发)。
若不想折腾脚本,最省事的替代是只写
@author/date,参数说明靠 IDE 的类型提示 + 良好命名。很多团队的方法注释规范只要求"复杂方法写@param/@return",不要求全覆盖——先和团队对齐,再决定投入多少。
4.3 注释模板的正确性判据
| 检查 | 做法 |
|---|---|
| 模板真的生效 | 新建一个类,看头部是否自动带出模板 |
| 变量真的被替换 | @date 不应是字面量 ${DATE} |
| 不污染 diff | 同一文件二次修改不应因时间戳变化产生无意义 diff(必要时把 @date 去掉) |
| 不违反团队规范 | 有的团队禁止 @author(Git 已有记录),模板里就别加 |
5. 团队约定:把设置写进仓库
个人设置在"换电脑/多人协作"时就会失效。三类东西必须进仓库:
5.1 .editorconfig(跨编辑器,优先级最高)
在仓库根放 .editorconfig:
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.{yml,yaml,json,md}]
indent_size = 2
[*.java]
indent_size = 4
max_line_length = 120
- IDEA 原生支持(
Settings → Editor → Code Style顶部有Enable EditorConfig support,默认开)。 - VS Code / Vim / Emacs 也认这个文件——这是"跨编辑器一致"的唯一低成本方案。
5.2 Code Style XML(只对 IDEA 生效的细粒度规则)
Settings → Editor → Code Style → ⚙ (齿轮) → Export → IntelliJ IDEA code style XML,把导出的 XML 放进仓库(如 config/idea/code-style.xml),团队成员 Import 即可。
适用场景:import 顺序、空白行规则、注解换行等 .editorconfig 表达不了的东西。
5.3 检查"约定是否真的生效"
# 步骤:确保工作区干净 → 在 IDE 里对整个文件 Ctrl+Alt+L(Reformat Code)→ 看 diff
git status --short # 期望:无输出
# …在 IDEA 中对某个文件执行 Reformat Code…
git diff --stat # 期望:无输出(约定一致);有输出则说明格式化规则与他人不同
判据:格式化后 git diff 为空,说明约定生效;有大片空白变更,说明有人没用同一套 Code Style。
6. 做对了没有:六条自检
| # | 检查 | 预期 |
|---|---|---|
| 1 | 新建一个类 | 头部自动带出注释模板,变量已替换 |
| 2 | 输入 strin 看提示 |
能提示 StringUtils(说明大小写不敏感已生效) |
| 3 | 输入 List 但不导包 |
自动补 import java.util.List(无歧义时) |
| 4 | 打开一个超长文件 | 有行号、有方法分隔线 |
| 5 | 同时开 10 个文件 | 标签页换行显示,不需要横向滚动 |
| 6 | git diff 里只有业务改动 |
没有成片的缩进/空行变更 |
7. 旧文对照
| 旧文 | 原始内容 | 本篇处理 |
|---|---|---|
| A-1346 | IDEA 教程总目录(十个章节,全部外链) | 只吸收"界面分区"与"教程地图"价值;章节内容拆到 B04/B05/B06/B09 各自主讲 |
| A-1353 | 字体大小设置 | 并入 §3 表 1,补"DPI 与字号"关系 |
| A-1354 | 主题、背景图、背景色 | 并入 §3 表 2、3;新增判断:背景图降低对比度,长期负收益 |
| A-1355 | 汉化(第三方插件) | 改为官方 Language Pack,并给出第三方插件冲突的处置 |
| A-1356 | 方法分隔线、行号 | 并入 §3 表 5,补"行号是异常栈定位基础" |
| A-1360 | Tab 多行显示 | 并入 §3 表 6 |
| A-1361 | 代码提示不区分大小写 | 并入 §3 表 7 |
| A-1362 | 自动导包/删包 | 并入 §3 表 8,补 Optimize imports on the fly |
| A-1367 | 注释行首缩进 | 保留为 §3.2,并重新归类为"团队约定"而非个人偏好 |
| A-1372 | 类/方法注释模板(含 Header.java、Live Template) |
保留为 §4;补变量表、params 脚本、正确性判据、"该不该写 @author"的团队讨论 |
| — | 旧文完全没有"个人偏好 vs 团队约定"的分层 | 新增 §1、§5(E-S01-010):.editorconfig + Code Style XML + 验证方法 |
8. 自测
- 同事拉下你的仓库,
git diff里出现大量"只有缩进变化"的文件。问题出在哪一层? .editorconfig与 IDEA 的 Code Style XML,分别能表达对方表达不了的什么?- 为什么"背景图"被本篇判定为负收益?什么情况下可以保留?
- 类注释里的
${USER}与写死姓名,各自的风险是什么? - 方法注释模板如果对每个方法都强制生成
@param,会给团队带来什么成本?
9. 下一篇
S01-B05 · IDEA 快捷键与效率动作
设置调完之后,剩下最大的效率差在"手不离键盘"。下一篇把旧文里 Windows/Mac 两套共 325 个键位条目,压缩成 20 个"每天必用"的动作清单,并给出快捷键失效时的三层排查法(输入法 → 系统热键 → 键位映射冲突)。
本篇属于系列《S01 · 开发环境与工具链》。旧文来源:A-1346/1353/1354/1355/1356/1360/1361/1362/1367/1372;扩展点 E-S01-010。标注「待核」的条目将在后续版本按 2025.x 逐项点验。