3191 字
约 10 分钟
8
S01-B04 · IDEA 基本功:界面、视图、外观与编码习惯

适用读者: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. 自测

  1. 同事拉下你的仓库,git diff 里出现大量"只有缩进变化"的文件。问题出在哪一层?
  2. .editorconfig 与 IDEA 的 Code Style XML,分别能表达对方表达不了的什么?
  3. 为什么"背景图"被本篇判定为负收益?什么情况下可以保留?
  4. 类注释里的 ${USER} 与写死姓名,各自的风险是什么?
  5. 方法注释模板如果对每个方法都强制生成 @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 逐项点验。

S01-B04 · IDEA 基本功:界面、视图、外观与编码习惯
https://www.clxhxhhr.top/posts/5158/
作者
clxstart
发布于
2024-12-31
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。