编码协助Coding assistance
类型信息Type info
如果您想了解有关插入符号处的符号的更多信息,例如,它来自哪里或它的类型是什么, 快速文档是您的朋友。按调用它,您将看到一个包含这些详细信息的弹出窗口。如果您不需要完整信息,请改用“类型信息”操作:它仅显示所选表达式的类型,但不会占用太多屏幕空间。F1
代码完成区分大小写
默认情况下,IntelliJ IDEA 代码完成区分大小写仅影响您键入的第一个字母。可以在编辑器 |上的Settings对话框 ( ⌘Сmd+,)中更改此策略。Editor | General | Code Completion页面,您可以在其中使 IDE 对所有字母敏感。
在这里,您还可以关闭“键入时显示建议”选项。如果您希望仅在显式调用代码完成弹出窗口时才显示它,那么这是有意义的。
禁用突出显示插入符号处元素的用法
谈到更好地学习 IntelliJ IDEA 后您可能想要更改的默认设置,我们不能错过编辑器中的插入符移动setting| Editor | Code Editing(设置中的突出显示|代码编辑)(⌘Сmd+⇧Shift+F7)。如果您知道快捷方式并且不喜欢每次移动插入符号时编辑器中突出显示的内容出现和消失,则可以关闭插入符号处元素的用法选项。
骆驼驼峰
默认情况下,当您在编辑器中选择任何内容时,IntelliJ IDEA 对单词的大小写不敏感。如果您喜欢根据驼峰命名法选择单词,例如,不选择整个单词,而是选择其中的一部分,您可以在Editor | General | Smart Keys中启用此功能(编辑器 |一般|设置对话框)。
嬉皮完成
IntelliJ IDEA 提供基本补全功能(⌃Ctrl+Space)、智能类型匹配补全功能(⌃Ctrl+⇧Shift+Space)和语句补全功能(⌘Сmd+⇧Shift+Enter)。所有这些功能都是基于对代码结构的实际理解。然而,有时您可能需要一个更琐碎但灵活的逻辑来建议当前文件甚至项目中较早使用的单词,无论其上下文如何。此功能称为“嬉皮补全”( Hippie completion ),可通过 ⌥Opt+/ 获得。
重构
撤消重构(⌘Сmd+Z)
使用 IntelliJ IDEA,您在重构代码时无需担心后果,因为您始终可以通过 方便的快捷方式调用“撤消”来撤消任何操作。
提取字符串片段
IntelliJ IDEA 不仅能够重构可执行代码,还能够重构字符串文字。选择字符串的任意片段,调用提取变量/常量/字段/参数将其提取为常量并在整个代码中替换其用法。
类型迁移 (⌘Сmd+⇧Shift+F6))
重构时,您通常会重命名符号,或者提取并移动代码中的语句。然而,重构的意义远不止于此。例如,类型迁移(通过 提供)允许您更改变量、字段、参数或方法的返回值( 、等)的类型,更新相关代码并解决可能的冲突。⌘Сmd⇧ShiftF6int → String
int → Long
反转布尔值
如果 IntelliJ IDEA 可以自动进行类型迁移,为什么不对语义进行同样的操作呢?要反转布尔符号的所有用法,只需使用反转布尔重构即可。
将插入符号放在要重构的方法或变量的名称处。
在主菜单或上下文菜单上,选择“重构”|“反转布尔值( Refactor | Invert Boolean.)。
在打开的对话框中,指定反转方法或变量的名称。
代码分析
依赖结构
IntelliJ IDEA 可以让您分析代码中的组件相互依赖的紧密程度,您需要密切关注这一点,因为当依赖关系过多时,很可能会导致各种问题。依赖结构操作(可通过“分析”菜单使用)将帮助您可视化和探索模块、包和类之间的依赖关系。
尽管其外观复杂,但它是一个非常易于使用的工具。只需选择一个类或包,然后查看它的使用位置和用途。
结构搜索和替换
结构搜索和替换(SSR)非常强大(在您学会正确使用它之后),并且可以用于静态代码分析和重构自动化。简而言之,它允许您搜索代码中的特定模式并用参数化模板替换它们。为此,它配备了自己的语言来定义代码模式,本文将对此进行更详细的描述。
要访问此功能,请使用编辑 |查找|结构性搜索/替换....如果您想创建模板或模式,请转到“设置”对话框,单击 Edit | Find | Search/Replace Structurally...页面”。 Inspections,并在 General 节点下启用 Structural Search Inspection:
用户界面
禁用面包屑和标签树突出显示(Editor | General | Breadcrumbs.)
如果您使用大量 HTML 和 XML 并且希望避免不必要的干扰,您可能需要在Editor |中禁用面包屑和标签树突出显示。一般|面包屑。
禁用不必要的装订线图标 ⌘Сmd+, : Editor | General | Gutter Icons.
Gutter是最左边的编辑器列,通常显示与您正在编辑的代码相关的有用信息。如果您觉得有时太多了,您可以在“设置”对话框 ( ) 中配置您想要看到的内容:编辑器|一般|天沟图标。⌘Сmd0,
到处搜索
通过Search Everywhere,您可以在任何地方找到任意文本片段:在您的代码、库、UI 部分、设置(通过在设置名称前面加上/
),甚至是操作名称。如果您经常使用此功能,那么值得一提的是,您只需在弹出窗口中按右键即可访问 IntelliJ IDEA 设置。例如,我们在这里访问编辑器设置:
如果您以 开始搜索查询/plugins
,您将能够打开和关闭它们:
其他标签包括/appearance
、、、、、、和。/system
/inspections
/registry
/intentions
/templates
/vcs
另一个有趣的事实是 Search Everywhere 支持缩写。您可以使用“设置”对话框的“键盘映射”页面为任何操作分配短文本,
然后通过输入以下文本从 Search Everywhere 调用此操作:
隐藏编辑器选项卡
当您需要关闭除当前选项卡之外的所有编辑器选项卡时,请单击 Alt
如果您根本不想看到编辑器选项卡,请转到编辑器设置的“编辑器选项卡”页面,然后在“位置”下拉列表下选择“无”。
在新窗口中打开文件
一个不太容易找到但很方便的功能是在新窗口中打开文件,方法是在项目工具窗口中选择文件并按。⇧Shift+Enter
将停止和恢复按钮添加到工具栏
将“停止”和“恢复”按钮添加到导航栏
的工具栏可能会很方便。您可以通过 View | Compare with Clipboard.来做到这一点。设置对话框的菜单和工具栏页面。
如果您更喜欢使用鼠标而不是键盘快捷键,这样您就不需要打开“ Debug tool window工具窗口来管理当前的调试会话。
编辑
与剪贴板比较
IntelliJ IDEA 有一个内置的 Diff 查看器,用于查看代码、jar 文件、修订版本甚至图像。要调用它,请选择任意一对文件并按。⌘Сmd+D0D
如果您选择了单个文件,IDE 将提示您选择要比较的文件。要快速将活动编辑器与剪贴板进行比较,请选择“ View | Compare with Clipboard.”。与剪贴板进行比较。
从历史记录中粘贴(⌘Сmd+⇧Shift+V)
IntelliJ IDEA 会跟踪您复制到剪贴板上的所有内容。每当您想要从剪贴板历史记录中粘贴之前复制的项目之一时,请按⌘Сmd+⇧Shift+V)。
多项选择
多重选择可让您一次快速选择和编辑多段文本。
首先,选择要编辑的文本范围。
然后,按下⌃Ctrl+G,IntelliJ IDEA 将向前搜索当前文件,直到找到区分大小写的匹配文本,并将其添加到选择中。您可以再次按前进或后退,但请注意,当搜索到达文件末尾时,它将从文件开头重新开始⌃Ctrl⇧Shift0G0G
选择完成后,您可以开始编辑所有片段,就像它们是一个片段一样。
正则表达式
IntelliJ IDEA 提供各种功能来帮助您使用正则表达式(regex 或 regexp)。例如,您可以将正则表达式与“查找和替换”功能结合使用,该功能还支持替换表达式中的捕获组。或者,您可以检查代码中的任何正则表达式:只需将脱字符号放在其上,然后按即可使用“检查正则表达式”意图。⌥Opt↩Enter
版本控制
修改变更
在IntelliJ IDEA 的“提交更改”对话框中,可以执行各种操作。其中之一是Amend commit,当您想要更改上次提交并将当前更改加入其中时,它非常有用。
架子和补丁
Shelves是一个类似于Git Stash的 IDE 功能,但适用于所有 VCS:当您需要暂停当前工作并从存储库中提取某些内容以尽快修复它,然后继续处理您正在处理的任何内容时,它会有所帮助。此功能可以处理本地更改的文件而不提交它们,因此不会再丢失更改或匆忙进行合并提交。
有关更多信息,请参阅Git-Stash页面和Stashing 和 Unstashing部分。
补丁允许您将一组更改保存到文本文件中,该文本文件可以通过电子邮件(或任何其他古老的媒介)传输,然后应用于代码。当您的飞机降落在荒岛上后确实需要做某事,或者您因其他原因陷入没有可靠宽带连接的情况时,这会很有帮助。
有关更多信息,请参阅使用补丁。
调试
非暂停断点
有时您可能希望在不暂停程序的情况下评估特定代码行的某些内容。您可以通过使用非挂起断点来做到这一点。要创建一个,只需单击装订线并在“评估和记录”字段中输入表达式。⇧Shift
这样您就可以更改或记录应用程序状态,而无需在项目代码中插入其他语句。当您调试无法更改的已编译类时,这特别有用。
现场断点或现场观察点
除了上面提到的动作断点之外,还可以使用Field watchpoints。当访问与其关联的字段时,该断点将停止执行。要创建现场观察点,只需单击装订线Alt(Ctrl+Cmd对于 macOS)。
对象标记
当您调试应用程序时,IntelliJ IDEA 允许您使用彩色标签标记任意对象的特定实例,以便通过“ 标记对象”操作更轻松地进行识别(可在“评估表达式”、“变量”或 “监视”视图中使用。)
如果您有任何标有标签的实例,您也可以在条件表达式中使用它:
自定义数据渲染器
Evaluate Expression、 Variables、 Watches和 内联调试器都使用标准方法来呈现变量值,主要基于toString
类的实现。并不是每个人都知道您可以为任何类定义自己的自定义渲染器。为此,请从调试工具窗口的上下文菜单中选择自定义数据视图。
当您使用的库中的某些类未提供有意义的实现时,这尤其有用toString
,因此您可以在库外部自行定义它。
掉帧
如果您想在调试时“回到过去”,可以通过“丢帧”操作来实现。如果您错误地走得太远,这将是一个很大的帮助。这不会恢复应用程序的全局状态,但至少会让您通过帧堆栈返回。
强制返回
相反,如果您想跳转到未来,并强制从当前方法返回而不执行任何更多指令,请使用“强制返回”操作(要调用它,请按并键入操作名称)。如果该方法返回一个值,您必须指定它。⌘Сmd⇧Shift0A
语言注入
语言注入允许 IDE 识别嵌入到字符串文字中的代码片段。当您将语言注入字符串文字时,您将获得用于编辑该文字的全面代码帮助,例如语法突出显示和代码完成。
例如,在 Java 代码中,您可以将 JSON 注入字符串文字中。 IntelliJ IDEA 可以识别注入的 JSON 代码,并在注入的片段中提供特定于 JSON 的功能,例如语法突出显示和代码格式化,从而更轻松地在同一文件中使用两种语言。
有关更多信息,请参阅语言注入。
更多请查询IDEA官方:Pro tips | IntelliJ IDEA Documentation