IntelliJ IDEA教程
IntelliJ IDEA的一般准则
IntelliJ IDEA编辑器
IntelliJ IDEA高级编辑程序
IDEA使用Subversion集成
IntelliJ IDEA提取重构
IntelliJ IDEA插件

IntelliJ IDEA使用技巧

因为本节的内容是介绍使用 IntelliJ IDEA 的一些专业技巧,是为了帮助已经熟悉 IntelliJ IDEA 基本功能的用户来了解并掌握有关 IntelliJ IDEA 的更多信息,所以在学习本节内容之前您需要对 IntelliJ IDEA 有了一定的了解。

如果您对IntelliJ IDEA相对较新,我们建议您先阅读IntelliJ IDEA的使用

IntelliJ IDEA编码帮助

1.使用 Type Info

如果你想要更多的关于符号的信息,例如从哪里或它的类型是什么, 快速文档可以很好的帮到您,您可以按下 Ctrl+Q 来调用它,然后你会看到一个包含这些细节的弹出窗口。如果您不需要完整信息,请改为使用 “Type Info” 操作:它仅显示所选表达式的类型,但不占用大量的屏幕空间。

2.代码完成区分大小写

默认情况下,IntelliJ IDEA 代码完成区分大小写仅影响您键入的第一个字母。这个策略可以在 “设置/首选项” 对话框中更改, Editor | General | Code Completion,所以你可以使 IDE 对所有的字母敏感,或者使它对所有的情况不敏感,这是基于什么更适合你的喜好。

热点提示: 在这里您也可以关闭 Autopopup 代码完成选项。如果您希望代码完成弹出菜单仅在显式调用时显示,这样的设置是有意义的。

3.禁止在插入符号处突出显示元素的用法

谈到默认值,您可能想要在更好地学习 IntelliJ IDEA 后对其进行改变,我们不能错过在 "设置/首选项" 对话框的 Editor | General 页存在的 “在插入符号时突出显示元素” 的用法。如果您知道 Ctrl+Shift+F7 快捷方式,并且不喜欢编辑器中的突出显示用法,每次只需移动插入符号即可显示并消失,则不需要此选项。

4.CamelHumps

默认情况下,当您在编辑器中选择任何内容时,IntelliJ IDEA 对单词的大小写不敏感。如果您喜欢根据 CamelCase 选择单词,例如,选择其中的一部分,而不是选择整个单词,您可以在 "设置/首选项" 对话框中的 Editor | General | Smart Keys 中启用该功能。

5.Hippie completion

IntelliJ IDEA 通过 Ctrl+Space 提供 Basic completion,通过 Ctrl+Shift+Space 提供Smart completion,和通过 Ctrl+Shift+Enter 提供 Statement completion。所有这些功能都是基于对代码结构的实际理解。然而,有时候,您可能需要一个更为微不足道的灵活逻辑,可以提示当前文件中甚至项目中使用的单词,无论其上下文如何。此功能叫 Hippie completion 并且通过 Alt+Slash 调用。

重构

1.撤消重构

使用 IntelliJ IDEA,您无需担心重构代码时的后果,因为您可以随时通过便捷的 Ctrl+Z 快捷方式调用 Undo 来撤消任何内容。

2.提取字符串片段

IntelliJ IDEA不仅可以重构可执行代码,还可以重写字符串。选择字符串的任何片段,调用提取变量/常量/字段/参数以将其作为常量提取,并在整个代码中替换其用法。

3.类型迁移

当您重构时,通常会重新命名符号,或者在代码中提取和移动语句。然而,还有更多的重构,而不仅仅是这样。例如,类型迁移(可通过 Ctrl+Shift+F6 提供)允许您更改变量,字段,参数或方法的返回值(int → String,int → Long,等)的类型,更新相关的代码,并解决可能发生的冲突。

4.反转布尔值

如果 IntelliJ IDEA 可以自动进行类型迁移,为什么不对语义做相同的操作?如果要反转一个布尔符号的所有用法,只需使用反转布尔重构。

代码分析

1.依赖结构矩阵

IntelliJ IDEA 可以让您分析代码中组件的紧密程度如何,您需要关注这一点,因为当存在太多的依赖项时,可能会导致各种各样的 问题。 依赖关系矩阵操作(可通过 “分析” 菜单提供)将帮助您可视化并探索模块,软件包和类之间的依赖关系。

尽管复杂的外观,它是一个非常易于使用的工具。只需选择一个类或包,看看它在哪里使用和使用它来做什么。

2.结构搜索和替换

结构搜索和替换(SSR)是相当强大的 (在您学会正确使用它之后),并且可以用于静态代码分析和重构自动化。简而言之,它允许您在代码中搜索特定的模式,并使用参数模板替换它们。为此,它配备了自己的语言来定义代码模式,本文将对此进行更详细的描述。

要访问此功能,请使用 "Edit | Find | Search/Replace Structurally....”。如果要创建模板或模式,请转到 "设置/首选项" 对话框, 单击 Editor | Inspections页面,并在 General node 下启用 Structural Search Inspection:

用户界面

1.禁用面包屑和标签树突出显示

如果您使用了大量的 HTML 和 XML,并希望避免不必要的干扰,您可能需要在 Editor | General | Appearance 中禁用面包屑和标签树突出显示。

2.禁用不必要的沟槽图标(gutter icons)

最左侧的编辑器列 Gutter 通常显示与您正在编辑的代码相关的有用信息。如果您觉得有时只是太多,您可以在 “设置/首选项” 对话框中配置要查看的内容 Editor | General | Gutter Icon。

3.禁用烦人的意图灯泡

还有一件事可能是烦人的,就是每次在插入符号处有意图时,编辑器中出现的意图灯泡。禁用它有点困难:您需要手动编辑您的 <IntelliJ IDEA preferences folder>/options/editor.xml,并添加以下行:

<option name="SHOW_INTENTION_BULB" value="false" />

4.使用Search Everywhere

使用 Search Everywhere, 您可以从字面上找到任意文本片段: 在代码、库、UI 的某些部分、设置 (通过将设置名称与 #),甚至是操作名称。如果你经常使用这个功能,那就值得知道,你可以通过在弹出窗口中按 Enter 键来访问 IntelliJ IDEA 的设置。例如,我们在这里访问编辑器设置:

如果您开始搜索查询#plugins,您可以打开和关闭它们:

其它标签包括 #appearance,#system,#inspections, #registry,#intentions,#templates和#vcs。

另一个有趣的事实是,Search Everywhere 支持缩写。您可以使用 “设置/首选项” 对话框的 “Keymap” 页面为任何操作分配一个短文本,然后通过输入以下文本从 “Search Everywhere” 中调用此操作:

5.隐藏编辑标签

当您需要关闭除当前选项卡之外的所有编辑器选项卡时,点击 “X” 图标并按住 Alt 键来关闭当前标签:

如果您不想看到编辑器标签,请转到 编辑器选项卡 页面的编辑器设置/首选项并在展示位置的下拉菜单中选择无。

6.在新窗口中打开文件

一个不是很容易找到的功能,但也是有用的,它通过在 "Project Tool Window" 中选择一个文件并单击 "Shift + Enter" 在新窗口中打开。

7.使用路径完成

路径完成可以帮助您加快文件,文件夹等的选择。在 "项目结构" 对话框中添加新的 SDK 或指定应用程序服务器主目录时,这很有用。

当您开始输入路径时,请按 Ctrl+Space 以调用建议列表:

8.添加停止和恢复按钮到工具栏

将 Stop和Resume按钮添加到工具栏可能很方便导航栏的操作。你可以通过"设置/首选项" 对话框的 Appearance and Behavior | Menus 和 Toolbars 页面做到这点。

如果您喜欢使用鼠标而不是键盘快捷键,则不需要打开调试工具窗口来管理当前的调试会话。

编辑

1.与剪贴板比较

IntelliJ IDEA有一个内置的 Diff 查看器,用于代码、jar文件、修订甚至于图像。要调用它,请选择任意一对文件,然后按 Ctrl+D。

如果您选择了单个文件,IDE 将提示您选择要比较的文件。要快速比较活动编辑器与剪贴板,请选择 View | Compare with Clipboard。

2.从历史粘贴

说到剪贴板,IntelliJ IDEA 跟踪你在那里的一切。每当您要粘贴以前复制的项目之一时,请按 Ctrl+Shift+V。

3.多项选择

多项选择是一个相对较新的非常强大的编辑器功能,可以让您快速选择和编辑多个(相邻或者不)代码片段。

简而言之,这里会发生什么。你要么开始按 Alt+J (然后 IntelliJ IDEA 在插入处选择一个符号),或者你可以按照通常的方式选择一些东西。

然后,按 Alt+JIntelliJ IDEA 将向前搜索当前文件,直到找到匹配的文本,并将其添加到选择中。您可以再次按下 Alt+J 以向前或 Shift+Alt+J 以返回,但请注意,当搜索到达文件结尾时,它将从文件的开头重新开始。

选择完成后,您可以开始编辑所有片段,就像它们一样。

提示:克隆插入符号的另一种方法是按 Ctrl (MacOS 中是 Alt)两次,然后用箭头或简单的鼠标向上或向下移动插入符号。

4.Emmet

如果你不知道, Emmet 是编写 HTML,XML 和 CSS 代码的好方法。IntelliJ IDEA 支持它开箱即用:只需编写一个 Emmet 表达式,然后按 Tab 来展开它。

使用 Emmet 预览操作(可在“查找操作”或“随处搜索”中使用 - 因此请确保将其分配给方便的快捷方式),以查看生成的代码的预览。

5.正则表达式

正则表达式是强大且广泛使用的,但有时它们写得很正确太难了。IntelliJ IDEA 将帮助您检查代码中的任何正则表达式:只需将插入符放在其中,然后按 Alt+Enter 使用 检查正则表达式意图:

6.查找并替换为正则表达式组

IntelliJ IDEA 帮助 Regex 的另一个地方就是 查找和替换功能。值得一提的是,它支持替换表达式中的捕获组。

查找和替换也可以从搜索中排除评论和文字:要做到这一点,请使用 “齿轮” 图标

7.字节码查看器

有时看到程序生成的实际字节码是非常的 有见地。

在 IntelliJ IDEA 中,您可以随时通过此操作 View | Show Bytecode 达到。

版本控制

1.修改变更

在 提交更改对话框 中 IntelliJ IDEA 提供执行各种操作。其中之一是修改提交,当您想要更改最后一个提交并加入您当前的更改时,这是有用的。

2.Shelves 和补丁

Shelves 是类似于 Git Stash 的 IDE 功能,但适用于所有 VCS:当您需要暂停当前工作并从存储库中提取某些内容以修复它时,帮助您,然后恢复正在进行的任何工作。此功能无需提交本地更改的文件,因此不会再丢失更改或仓促合并提交。

请参阅页面 Git-Stach 和 Stashing and Unstashing 部分了解更多详情。

补丁程序允许您将一组更改保存到可通过电子邮件(或任何其他古老媒体)传输的文本文件,然后应用于代码。当你的飞机坠毁在沙漠的岛屿上真的需要做某事时,这是非常有帮助的,或者你以某种方式让自己处于没有可靠的宽带连接的情况下。

调试

1.操作或方法断点

有时, 您可能需要在特定的代码行中进行评估, 而无需实际停止。可以使用方法断点来执行此项。要创建一个, 只需单击 gutter 按住 Shift。

这样,您可以将任何表达式打印到输出,而无需更改代码。这在调试库或远程应用程序时尤其有用。

2.字段断点或字段观察点

除了上述动作断点之外,您还可以使用 字段观察点。当与其关联的字段被访问时,该断点将停止执行。要创建现场观察点,只需点击 gutter 按住 Alt(macOS 中使用 Ctrl+Cmd)。

3.对象标记

当您调试应用程序时,IntelliJ IDEA 允许您使用彩色标签标记任意对象的特定实例,以便通过该标签轻松识别 标记对象 动作(可在评估表达, 变量或手表的意见。)

如果你有任何标签标签的实例,你也可以在条件表达式中使用它:

4.自定义数据渲染器

评估表达,变量, 手表和 内联调试器 都使用标准方式来呈现变量值,主要是基于toString类的实现。不是每个人都知道您可以为任何类定义自己的自定义渲染器。为此,选择 从上下文菜单中自定义数据视图调试 工具窗口。

当您使用的库中的某些类不提供有意义的toString实现时,这是非常有用的,因此您可以在库之外定义它。

5.落架

如果您想在调试时“及时回来”,可以通过“丢帧”操作来执行此操作。如果你错误地走得太远,这是一个很大的帮助。这不会恢复您的应用程序的全局状态,但至少会让您回到一堆帧。

6.强制返回

绕过的方式,如果你想跳到未来,强制从当前方法返回,而不执行任何更多的指令,请使用 强制返回动作(调用它,按键Ctrl+Shift+A并输入动作名称)。如果该方法返回一个值,则必须指定它。

DCEVM

有时,当您快速更改代码时,您希望立即看到它们将如何在工作的应用程序中运行。不幸的是,Java HotSwap VM有很多限制:您不能说,向类添加新的方法或字段,并执行热插拔; 在热插拔中唯一可以改变的是方法体。

请参阅各节 重新加载类和HotSwap 的详细信息。

幸运的是,有一种方法可以用新的开放源代码项目Dynamic Code Evolution VM来修改这种情况,这是一个Java HotSwap VM的修改,可以在运行时重新加载类,不受支持。

在IntelliJ IDEA中使用它很容易与专用 插件。启用插件后,IDE将为您提供为您的环境下载DCEVM JRE。那么你必须在替代JRE列表中选择它。

更新应用程序

如果您在应用程序服务器(例如Tomcat,JBoss等)上运行应用程序,则可以使用Update应用程序操作重新加载更改的类和资源 Ctrl+F10。

工具

1.外部工具

IntelliJ IDEA有许多开发人员工具集成和开箱即用。如果您需要的工具不是集成的,但是您希望通过快捷方式使用它,请转到 设置/首选项| 工具| 外部工具,并配置如何运行此工具。然后你可以通过这个工具来运行这个工具 工具| 外部工具主菜单。