专业技巧
本指南面向已经熟悉 IntelliJ IDEA 基本功能并希望进一步了解的用户。 如果您对 IntelliJ IDEA 相对较为陌生,我们建议您在深入了解本文之前,先阅读 IntelliJ IDEA 概述。
编码辅助
Full Line 代码补全
整行代码补全 功能使用本地运行的深度学习模型来建议整行代码。
要接受整个建议,请按 Tab。
或者,前往 中的主菜单或 配置不同的快捷键。
要逐字接受建议,请按 Ctrl+Right 或在主菜单中转到 。
要逐行接受建议,请按 End 或进入主菜单中的 。
类型信息和快速文档
如果您想了解光标处符号的更多信息,例如它的来源或其类型是什么, 快速文档是您的好帮手。 按 Ctrl+Q 调用它,您会看到一个弹出窗口,显示这些详细信息。
如果您不需要完整信息,可以使用 类型信息 操作:将光标放在代码元素上,然后按 Ctrl+Shift+P 或转到主菜单中的 。 它仅显示所选表达式的类型,但不会占用太多屏幕空间。

代码补全区分大小写
默认情况下,IntelliJ IDEA 的代码补全大小写敏感性仅影响您输入的第一个字母。 此策略可以在 设置 对话框(Ctrl+Alt+S )中的 页面上更改,您可以使 IDE 对所有字母敏感。

在这里,您还可以关闭 输入时显示建议 选项。 如果您希望仅在明确调用时才显示代码补全弹出窗口,这是合理的。
CamelHumps
默认情况下,当您在编辑器中选择任何内容时,IntelliJ IDEA 对单词的大小写不敏感。 如果您更喜欢根据 CamelCase 选择单词,例如选择部分单词而不是整个单词,可以启用此功能。 您可以在 的 设置 对话框中启用此功能。
重构
提取字符串片段
IntelliJ IDEA 不仅可以重构可执行代码,还可以重构字符串字面量。 选择字符串的任意片段,调用 Extract variable/constant/field/parameter,将其提取为常量,并在整个代码中替换其用法。
类型迁移
在重构时,您通常会重命名符号或提取并移动代码中的语句。 不过,重构不仅仅是这样。 例如, 类型迁移 (通过 Ctrl+Shift+F6 获取)允许您更改变量、字段、参数或方法返回值的类型(int → String、 int → Long 等),更新相关代码,并解决可能的冲突。
反转布尔值
如果 IntelliJ IDEA 可以自动化类型迁移,为什么不对语义做同样的处理呢? 要反转布尔符号的所有用法,请使用 反转布尔值重构。
撤消重构
使用 IntelliJ IDEA,您无需担心重构代码时的后果,因为您可以通过调用 撤销功能并使用便捷的 Ctrl+Z 快捷键随时撤销任何操作。
代码分析
结构化搜索和替换
Structural Search and Replace 或 SSR 相当强大(在您学会正确使用之后),可以用于静态代码分析和重构自动化。 简而言之,它使您能够在代码中搜索特定模式,并用参数化模板替换这些模式。 为此,它配备了自己的语言来定义代码模式,详细描述请见此 文章。
要访问此功能,请使用 。 如果您想创建自己的模板或模式,请转到 设置 对话框,点击页面 编辑器 | 检查 ,并在常规节点下启用结构化搜索检查:

用户界面
禁用路径导航和标记树高亮显示
如果您处理大量 HTML 和 XML 并且想要避免不必要的干扰,您可能希望在 中禁用 路径导航 和 标记树高亮显示。
禁用不必要的装订区域图标
Gutter ,最左边的编辑器列,通常显示与您正在编辑的代码相关的有用信息。 如果您觉得有时信息过多,您可以在 设置 对话框(Ctrl+Alt+S )中配置您想要看到的内容: Editor | General | Gutter Icons。
随处搜索
通过 Search Everywhere ,您可以在任意位置查找任意文本片段:在您的代码、库、用户界面部分、设置(通过在设置名称前加上 / )甚至操作名称中。 如果您经常使用这个功能,值得知道的是,您可以通过在弹出窗口中直接按 Enter 来访问 IntelliJ IDEA 设置。 例如,此处我们正在访问编辑器设置:

如果您以 /plugins 开始搜索查询,您将能够打开和关闭它们:

其他标签包括 /appearance、 /system、 /inspections、 /registry、 /intentions、 /templates 和 /vcs。
另一个有趣的事实是,Search Everywhere 支持缩写。 您可以使用设置对话框的 Keymap page为任何操作分配一个短文本,

然后通过输入以下文本从“随处搜索”调用此操作:

隐藏编辑器标签页
当您需要关闭除当前标签外的所有编辑器标签时,请在当前标签上点击关闭图标 ,同时按住 Alt。

如果您完全不想看到编辑器标签,请转到设置中的 编辑器选项卡页 页面,并从 标签页位置 下拉列表中选择 无。
在新窗口中打开文件
一个不太容易找到但非常有用的功能是,在 项目工具窗口 中选择一个文件并按下 Shift+Enter 即可在新窗口中打开该文件。
编辑器
与剪贴板比较
IntelliJ IDEA 内置了一个差异查看器,可用于代码、jar 文件、修订版本,甚至是图像。 要调用它,选择任意一对文件并按 Ctrl+D。
如果您已选择一个文件,IDE 将提示您选择要进行比较的文件。 要快速比较活动编辑器与剪贴板,请选择 。

从历史粘贴
IntelliJ IDEA 记录您复制到剪贴板上的所有内容。 每当您想从 剪贴板历史 中粘贴先前复制的项目时,按 Ctrl+Shift+V。

多选
多重选择 允许您快速选择并同时编辑多段文本。
首先,选择您要编辑的文本范围。
然后,按 Alt+J ,IntelliJ IDEA 将向前搜索当前文件,直到找到一个完全匹配的文本片段,然后将其添加到选中内容中。 您可以按 Alt+J 继续前进,或者按 Alt+Shift+J 返回,但请注意,当搜索到达文件末尾时,它将从文件的开头重新开始。
选择完成后,您可以开始像编辑一个片段一样编辑所有片段。

正则表达式
IntelliJ IDEA 提供了多种功能,以帮助您使用正则表达式(regex 或 regexp)。 例如,您可以使用正则表达式与 查找和替换功能 ,该功能还支持在替换表达式中捕获的组。 或者,您可以在代码中检查任何正则表达式:只需将文本光标放在正则表达式处并按下 Alt+Enter 以使用 Check Regex意图。

版本控制
修正更改
在 提交更改对话框中,IntelliJ IDEA 提供执行各种操作的选项。 其中之一是 修正提交 ,当您想要更改上次提交并将当前更改加入其中时非常有用。
搁置与补丁
Shelves 是一个类似于 Git Stash 的 IDE 功能,但适用于所有 VCS:当您需要暂停当前工作并从存储库中提取某些内容以尽快修复时,它会提供帮助,然后您可以恢复之前的工作。 此功能负责处理本地已更改但未提交的文件,因此不会再有丢失的更改或匆忙进行的合并提交。
如需更多信息,请参阅页面 Git-Stash和章节 Stashing and Unstashing。
补丁允许您将一组更改保存到文本文件中,该文件可以通过电子邮件(或任何其他旧媒介)传输,然后应用到代码中。 当您的飞机降落在荒岛上,或您以其他方式置身于没有可靠宽带连接的情况下,您确实需要提交某些内容时,这将非常有用。
如需更多信息,请参阅 Using Patches。
调试
非挂起断点
有时,您可能希望在特定代码行进行评估,而不暂停程序。 您可以通过使用 non-suspending breakpoint 来实现。 要创建一个,只需点击包含 Shift 的边距并在 求值并记录(E) 字段中输入表达式。

这样您可以更改或记录应用程序状态,而无需在项目代码中插入额外的语句。 在调试无法更改的已编译类时,这非常有用。
字段断点或字段观察点
除了上面提到的动作断点,您还可以使用 Field watchpoints。 当访问与此关联的字段时,此断点将停止执行。 要创建字段监视点,只需点击位于 Alt 的凹槽(macOS 请点击 Ctrl+Cmd )。

对象标记
在调试应用程序时,IntelliJ IDEA 允许您通过 标记对象操作(可在 计算表达式、 变量或 监视视图中使用)为任意对象实例添加彩色标签以便于识别。 )
如果您有任何使用标签标记的实例,也可以在条件表达式中使用它:

自定义数据呈现器
计算表达式、 变量、 监视和 内联调试器都使用一种标准方式来呈现变量值,主要基于 toString 类的实现。 并不是所有人都知道,您可以为任何类定义自定义渲染器。 为此,请从 上下文菜单中选择 Debug(调试)工具窗口 工具窗口。

当您使用的库中的某些类未提供有意义的 toString 实现时,这尤其有用,您可以在库外自行定义它。
丢帧
如果您想在调试时“回到过去”,可以通过 Drop Frame 操作来完成。 如果您不小心走得太远,这是一个很大的帮助。 这不会还原您应用程序的全局状态,但至少会使您通过帧堆栈回退。
强制返回
如果您想跳到未来,并强制从当前方法返回而不再执行其中的任何指令,请使用 强制返回 操作(要调用它,请按 Ctrl+Shift+A 并输入操作名称)。 如果该方法返回一个值,您必须指定它。
语言注入
语言注入允许 IDE 识别嵌入到字符串字面值中的代码片段。 当您将一种语言注入字符串字面量时,您将获得针对编辑该字面量的全面代码辅助功能,例如语法高亮和代码补全。
例如,您可以在 Java 代码中将 JSON 注入到字符串字面量中。 IntelliJ IDEA 能识别注入的 JSON 代码,并在注入的片段中提供特定于 JSON 的功能,例如语法高亮和代码格式化,使得在同一个文件中处理这两种语言更加容易。
如需了解更多信息,请参见 Language Injection。

更新应用程序
如果您在应用服务器(Tomcat、JBoss 等)上运行您的应用程序,您可以通过 Ctrl+F10 使用更新应用程序操作重新加载更改的类和资源。
有关更多信息,请参见 在应用服务器上更新应用程序。
工具
外部工具
IntelliJ IDEA 集成了许多开发者工具,并且可以立即使用。 如果您需要的工具尚未集成,但希望通过快捷方式使用,请前往 External Tools ,并配置如何运行此工具。 然后,您将能够通过 主菜单运行此工具。
有关更多信息,请参见 外部工具。