文件和代码模板#
文件模板是创建新文件时要生成的默认内容的规范。根据您创建的文件类型,模板提供了预期在该类型的所有文件中的初始代码和格式(根据行业标准,您的公司政策或其他原因)。
IntelliJ IDEA为所有支持的文件类型提供预定义模板,这些模板是在创建新文件时建议的。建议的文件类型集取决于模块和配置,以及“ 项目”工具窗口中当前位置的属性。例如,IntelliJ IDEA不会建议在Java源代码或测试目录之外创建Java类文件(有关更多信息,请参阅内容根目录)。
文件模板在编辑器上管理 IntelliJ IDEA设置的文件和代码模板页面(Ctrl+Alt+S)此设置页面可以在以下两个范围之一中配置:
-
- 该默认范围控制,涉及到整个工作区模板。它们存储在fileTemplates下的IDE配置目录中。
-
- 该项目范围控制在每个项目的基础模板。它们存储在.idea / fileTemplates下的项目文件夹中。这些模板可以在团队成员之间共享。
默认情况下,模板列表仅包含IntelliJ IDEA提供的预定义模板。其中一些是内部的,这意味着它们无法删除或重命名。内部模板的名称以粗体显示。您修改的模板名称以及手动创建的自定义模板以蓝色显示。
IntelliJ IDEA使用几种类型的模板,分为以下选项卡:
-
- “ 文件”选项卡包含可用于创建新文件的文件模板。
-
- “ 包含”选项卡包含可以插入到文件模板中的可重用内容的模板(例如,作为标题)。
-
- “ 代码”选项卡包含IntelliJ IDEA用于生成各种构造的代码片段(片段)的内部模板。您可以在此选项卡上编辑可用的代码段,但无法创建新的代码段。
-
- “ 其他”选项卡包含各种应用程序服务器和框架使用的模板。您可以在此选项卡上编辑现有的内置模板,但不能创建新的模板。
以下过程描述了如何创建文件模板。类似的过程可用于创建包含模板。
创建新文件模板#
-
1. 在Settings / Preferences 对话框(Ctrl+Alt+S)中,选择Editor | 文件和代码模板。
-
2. 在“ 文件”选项卡上,单击 并指定模板的名称,文件扩展名和正文。
-
3. 应用更改并关闭对话框。
复制现有文件模板#
-
1. 在Settings / Preferences 对话框(Ctrl+Alt+S)中,选择Editor | 文件和代码模板。
-
2. 在“ 文件”选项卡上,根据需要单击 并修改模板的名称,文件扩展名和正文。
-
3. 应用更改并关闭对话框。
将文件另存为模板#
-
1. 在编辑器中打开一个文件。
-
2. 选择 工具| 从菜单中将文件另存为模板。
-
3. 在打开的“ 将文件另存为模板”对话框中,指定新模板名称并根据需要编辑正文。
-
4. 应用更改并关闭对话框。
语法#
文件和代码模板以Velocity模板语言(VTL)编写,可以使用以下结构:
有关更多信息,请参阅VTL参考指南。
以下示例显示了在IntelliJ IDEA中创建Java类的默认模板:
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
public class ${NAME} {
}
在这个模板中:
-
- 该
#if
指令用于检查包名是否为空,如果是,则将名称添加到作为${PACKAGE_NAME}
变量传递的包语句中。 -
- 该
#parse
指令用于插入另一个名为的模板的内容File Header.java
。 -
- 然后模板声明一个公共类,其名称作为
${NAME}
变量传递(新文件的名称)。
创建新的Java文件时,此模板将生成一个文件,其内容类似于以下内容:
package demo;
/**
* Created by IntelliJ IDEA.
* User: John.Smith
* Date: 6/1/11
* Time: 12:54 PM
* To change this template use File | Settings | File and Code Templates.
*/
public class Demo {
}
文件模板变量#
文件模板是创建新文件时要生成的默认内容的规范。根据您创建的文件类型,模板提供了预期在该类型的所有文件中的初始代码和格式(根据行业标准,您的公司政策或其他原因)。 文件模板可以包含变量,在应用模板时,变量将替换为它们的值。变量是一个以美元符号($
)后跟变量名称开头的字符串。变量名称可以选择用大括号括起来。例如:$MyVariable
并且 ${MyVariable}
是同一变量的不同符号。
预定义的模板变量#
可以在文件模板中使用以下预定义变量:
变量 |
描述 |
---|---|
${DATE} |
当前系统日期 |
${DAY} |
当月的当天 |
${DS} |
美元符号( |
${END} |
完成编辑变量后的插入位置 |
${FILE_NAME} |
新PHP文件的名称(如果启用了PHP插件) |
${HOUR} |
当前时间 |
${MINUTE} |
当前分钟 |
${MONTH} |
这个月 |
${MONTH_NAME_FULL} |
当月的全名(1月,2月等) |
${MONTH_NAME_SHORT} |
当前月份名称的前三个字母(Jan,Feb等) |
${NAME} |
新实体的名称(文件,类,接口等) |
${PACKAGE_NAME} |
创建新类或接口文件的目标包的名称 |
${PRODUCT_NAME} |
IDE的名称(例如,IntelliJ IDEA) |
${PROJECT_NAME} |
当前项目的名称 |
${TIME} |
当前系统时间 |
${USER} |
当前用户的登录名 |
${YEAR} |
今年 |
IntelliJ IDEA为PHP包含模板提供了一组附加变量,用于定义可重用的代码片段,例如文件头和PHPDoc注释。
PHP包含模板中可以使用以下附加预定义变量:
变量 |
描述 |
---|---|
${CARET} |
完成编辑变量后的插入位置。仅在文件创建期间生成并插入PHPDoc注释时应用。当通过Code |创建PHPDoc注释时 生成| PHPDoc块,可以选择多种功能或方法。可以为多个类,函数,方法或字段创建此案例中的文档注释,因此将 |
${CLASS_NAME} |
定义了生成PHPDoc注释的字段或方法的类的名称 |
${NAME} |
将为其生成PHPDoc注释的类,字段或函数(方法)的名称 |
${NAMESPACE} |
类或字段命名空间的完全限定名称(不带前导斜杠) |
${PARAM_DOC} |
参数的文档注释。评估一组 |
${STATIC} |
|
${THROWS_DOC} |
文档注释异常。评估一组 |
${TYPE_HINT} |
返回函数(方法)的值以生成PHPDoc注释。如果通过函数(方法)的静态分析无法检测返回类型,则求值为 |
自定义模板变量#
除了预定义的模板变量,还可以指定自定义变量。如有必要,您可以使用#set
指令在模板中定义自定义变量的值。
例如,如果要使用全名而不是通过预定义变量定义的登录名${USER}
,请使用以下构造:
#set( $MyName = "John Smith" )
如果未在模板中定义变量的值,IntelliJ IDEA将要求您在应用模板时指定它。
模板中的可重用内容#
包含模板用于定义可重复使用的代码片段(例如,标准头文件,版权声明等),以通过#parse
指令插入到其他模板中。
该#parse
指令具有以下语法:
#parse("<include_template_name.extension>")
例如: #parse("File Header.java")
....
可以在其他模板中以这种方式引用的模板列在编辑器的“ 包含”选项卡上 IntelliJ IDEA设置的文件和代码模板页面(Ctrl+Alt+S)。
创建包含模板#
-
1. 按 Ctrl+Alt+S 以打开“ 设置/首选项”对话框,然后转到“ 编辑器”| 文件和代码模板。
-
2. 打开“ 包含”选项卡。
-
3. 单击 工具栏上的“ 创建模板 ”,然后指定包含模板名称,扩展名和正文。
将可重用模板插入另一个模板#
-
添加
#parse
指令,其中包含要插入的包含模板的名称。有关示例,请参阅模板语法。
实时模板#
通过使用Live模板,您可以将常用的构造插入到代码中。例如,循环,条件,各种声明或打印语句。要展开代码段,请键入相应的模板缩写,然后按Tab。继续按下Tab以从模板中的一个变量跳转到下一个变量。按Shift+Tab移动到上一个变量。有关更多信息,请参阅实时模板变量。
以下类型的实时模板是有区别的:
-
- 简单模板仅包含固定的纯文本。展开简单模板时,文本会自动插入到源代码中,替换缩写。
缩写
扩展到
psfs
public static final String
psvm
public static void main(String[] args){ }
sout
System.out.println();
-
- 参数化模板包含允许用户输入的变量。展开参数化模板时,变量将由输入字段替换,以供用户手动指定,或由IntelliJ IDEA自动计算。
缩写
扩展到
fori
for (int i = 0; i < ; i++) { }
ifn
if (var == null) { }
ifn
if (var == null) { }
-
- 环绕模板使用用户指定的文本包装所选代码的块。例如,
T
展开为一对标签,您可以为其指定名称。您也可以选择一个代码块,然后按Ctrl+Alt+J打开选择模板弹出窗口并选择T
模板以使用一对标签包装选择。
Postfix代码完成 类似于实时模板,它会转换当前表达式而不选择它。例如,您可以.if
在表达式后面键入 以调用相应的后缀完成,并使用if
语句包装表达式。
要配置实时模板,请打开 编辑器| IntelliJ IDEA设置的实时模板页面(Ctrl+Alt+S)。在“ 实时模板”页面上,您可以查看所有可用的实时模板,编辑它们并创建新模板。模板根据可以使用的上下文(通常由相应的语言)进行分组。要将模板移动到另一个组,请右键单击该模板,选择“ 移动”,然后选择所需的组名。
您可以对属于不同方言组的不同实时模板使用相同的缩写。
如果为实时模板设置方言,则此实时模板仅适用于此方言。
每个实时模板由包含字母数字字符,点和连字符的缩写定义。缩写在组内必须是唯一的,但是相同的缩写可以在不同的组中使用,并根据相应组的上下文扩展到不同的构造。修改后的默认模板的缩写显示在列表中,带有蓝色字体。
将修改后的模板恢复为默认设置#
-
在“ 设置/首选项”对话框的“ 实时模板”页面上,右键单击要还原的模板,然后单击“恢复默认值”。
创建实时模板#
以下示例过程说明了如何TODO
使用当前日期和用户名为注释创建模板:
创建实时模板#
-
1. 导航到文件| 设置/首选项| 实时模板。
-
2. 选择要在其中创建新实时模板的模板组(例如,
other
)。如果未选择模板组,则会将实时模板添加到用户组。 -
3. 单击工具栏上的“ 添加 ”。添加并选择新模板项。
-
4. 指定以下值:
领域
描述
示例值
缩写
指定要扩展模板的字符
todo
描述
指定可选描述以标识模板的用途
Insert TODO comment with the current date and username
模板文字
使用变量指定模板的主体
//TODO $DATE$ $USER$: $END$
-
5. 单击底部的“ 定义 ”以选择适用的上下文(例如, Java,如果它应该应用于Java源文件)。
-
6. 单击编辑变量,然后选择
date()
for$DATE$
和user()
for 的功能$USER$
。同时选择“ 为两个变量定义的跳过”,然后单击“ 确定”。 -
7. 单击“ 确定”以应用更改。
根据当前系统日期和用户名,新创建的todo
模板将扩展为类似于以下内容的行::
//TODO 15/02/2018 jsmith:
如果要在多个组中重复使用相同的模板,或者要基于另一个模板创建新模板,则可以复制现有模板。
复制现有模板#
-
1. 在“ 设置/首选项”对话框的“ 实时模板”页面上,选择要复制的模板。
-
2. 单击工具栏上的“ 复制”()。新模板项目将添加到与原始模板相同的组中,并被选中。
-
3. 指定模板的新缩写,可选描述(用于标识模板的用途),并在必要时修改模板主体。如果模板已定义变量,请单击“ 编辑变量”以配置变量。
-
4. 单击“ 确定”以应用更改。
从代码片段创建新模板#
-
1. 在编辑器中,选择文本片段以从中创建实时模板。
-
2. 在“ 工具”菜单上,单击“ 另存为实时模板”。将打开“ 实时模板”页面,并创建并选择新模板。
-
3. 指定模板的缩写,可选描述(用于标识模板的用途),以及修改模板主体。如果模板已定义变量,请单击“ 编辑变量”以配置变量。
-
4. 单击“ 确定”以应用更改。
实时模板变量#
扩展实时模板缩写时,变量将替换为预定义值(默认值或使用函数计算),并显示为用户可以修改的输入字段。
模板中的变量以以下格式声明:
$<variable_name>$
要向$
模板文本添加美元字符()以使其不被视为变量声明,请使用特殊变量$$
。
每个变量都由表达式定义,并且可以在表达式无法计算时接受某些默认值。
此表达式可能包含以下基本类型的构造:
-
- 双引号中的字符串常量。
-
- 实时模板中定义的另一个变量的名称。
-
- 具有可能参数的预定义函数。
可以在“ 编辑模板变量”对话框中配置模板变量。
配置模板变量#
-
1. 按 Ctrl+Alt+S 以打开“ 设置/首选项”对话框,然后转到“ 编辑器”| 实时模板。
-
2. 选择要配置变量的模板。
-
3. 在模板文本中指定变量,然后单击编辑变量
-
4. 在“ 编辑模板变量”对话框中,您可以对每个变量执行以下操作:
-
- 更改变量名称。
-
- 使用预定义函数定义表达式。
-
- 指定表达式无法评估的情况的默认值。
-
- 如果使用其表达式定义变量,请指定在提示用户输入时是否要跳过变量。
-
预定义的模板变量#
IntelliJ IDEA支持以下预定义的无法修改的实时模板变量:
-
-
$END$
表示代码片段完成时光标的位置,您不能再按下Tab跳转到下一个变量。 -
-
$SELECTION$
用于环绕模板,表示要包装的代码片段。展开模板后,所选文本将按照模板中的指定进行包装。例如,如果您EXAMPLE
在代码中选择并"$SELECTION$"
通过指定的缩写调用模板,或者通过按下Ctrl+Alt+T并从列表中选择所需的模板,IntelliJ IDEA将使用双引号将选择包装如下:"EXAMPLE"
。
实时模板变量中使用的预定义函数#
以下函数可用于定义实时模板变量:
功能 |
描述 |
---|---|
annotated("annotation qname") |
使用驻留在指定位置的注释创建类型的符号。有关示例,请参阅迭代组中的实时模板。 |
anonymousSuper() |
建议Kotlin对象表达式的超类型。 |
arrayVariable() |
建议适用于当前范围的所有数组变量。有关示例,请参阅迭代组中的实时模板。 |
|
返回表示当前语言上下文中块注释结束的字符。 |
|
返回指示当前语言上下文中块注释开始的字符。 |
camelCase(String) |
将字符串转换为camelCase。例如 |
capitalize(String) |
大写参数的第一个字母。 |
capitalizeAndUnderscore(sCamelCaseName) |
将作为参数传递的CamelCase名称的所有字母大写,并在各部分之间插入下划线。例如, |
castToLeftSideType() |
将右侧表达式转换为左侧表达式类型。它在迭代组中用于生成单个模板,用于生成原始类型和泛型集合。 |
className() |
返回当前类的名称(扩展模板的类)。 |
classNameComplete() |
此表达式替换变量位置处的类名称完成。 |
clipboard() |
返回系统剪贴板的内容。 |
|
返回指示当前语言上下文中注释结尾的字符。如果以当前语言定义行注释,则返回值为空。 |
|
返回指示当前语言上下文中注释开头的字符。如果使用当前语言定义行注释,则最好使用其开始指示符。 |
complete() |
在变量的位置调用代码完成。 |
completeSmart() |
在变量的位置调用智能类型完成。 |
componentTypeOf(<array>) |
返回数组的组件类型。例如,请参阅迭代组和另一组中的实时模板。 |
|
返回作为参数传递给函数的所有字符串的串联。 |
currentPackage() |
返回当前包名称。 |
date(sDate) |
以指定格式返回当前系统日期。 如果没有参数,则以默认系统格式返回当前日期。
|
decapitalize(sName) |
用相应的小写字母替换参数的第一个字母。 |
defaultReturnValues |
如果在return语句中使用表达式,则返回默认值。 |
descendantClassEnum(<String>) |
返回指定为字符串参数的类的子级。 |
enum(sCompletionString1,sCompletionString2,...) |
返回扩展模板时建议完成的逗号分隔字符串列表。 |
escapeString(sEscapeString) |
转义指定为参数的字符串。 |
expectedType() |
返回模板扩展到的表达式的预期类型。如果模板在赋值的正确部分,之后等扩展,则会有意义 |
fileName() |
返回当前文件的名称及其扩展名。 |
fileNameWithoutExtension() |
返回没有扩展名的当前文件的名称。 |
firstWord(sFirstWord) |
返回作为参数传递的字符串的第一个单词。 |
groovyScript("groovy code", arg1) |
返回具有指定代码的Groovy脚本。 您可以使用 |
guessElementType (<container>) |
猜测存储在a中的元素的类型 |
iterableComponentType(<ArrayOrIterable>) |
返回可迭代组件的类型,例如数组或集合。 |
iterableVariable() |
返回可以迭代的变量的名称。 |
|
返回当前JavaScript数组的名称。 |
jsClassName() |
返回当前JavaScript类的名称。 |
|
返回当前JavaScript组件的类型。 |
|
根据模块的名称,返回参数 |
jsMethodName() |
返回当前JavaScript方法的名称。 |
|
返回当前JavaScript类的完整名称。 |
|
返回从最常用的一个指标变量建议名称: |
|
根据引用变量命名规则的代码样式设置,根据变量类型和初始化表达式返回变量的建议名称。 |
|
Boolean参数确定当前上下文中是否允许常量。如果未指定参数,则允许使用常量。当模板扩展,列表显示有 |
|
建议该类型的import语句的名称 |
|
返回表示当前语言上下文中行注释开头的字符。 |
lineNumber() |
返回当前行号。 |
lowercaseAndDash(String) |
将camelCase字符串转换为小写,并将n-dashes作为分隔符插入。例如, |
regularExpression(String, Pattern, Replacement) |
根据指定的模式在字符串中进行替换。 |
methodName() |
返回展开模板的方法的名称。 |
methodParameters() |
返回展开模板的方法的参数列表。 |
methodReturnType() |
返回当前方法返回的值的类型(模板在其中展开)。 |
qualifiedClassName() |
返回当前类的完全限定名称(扩展模板的名称)。 |
rightSideType() |
使用右侧表达式的类型声明左侧变量。它在迭代组中用于生成单个模板,用于生成原始类型和泛型集合。 |
|
将字符串转换为snake_case。例如, |
spaceSeparated(String) |
将字符串转换为小写并将空格作为分隔符插入。例如, |
spacesToUnderscores(sParameterWithSpaces) |
用作为参数传递的字符串中的下划线替换空格。例如, |
substringBefore(String,Delimiter) |
在指定的分隔符后删除扩展名并仅返回文件名。这对测试文件名很有用(例如,在 component-test.js中 |
subtypes(sType) |
返回作为参数传递的类型的子类型。 |
suggestFirstVariableName(sFirstVariableName) |
不建议 |
suggestIndexName() |
表明从最常用的索引变量的名称: |
suggestVariableName() |
根据引用变量命名规则的代码样式设置,根据变量类型及其初始化表达式建议变量的名称。 |
time(sSystemTime) |
以指定格式返回当前系统时间。 |
typeOfVariable(VAR) |
返回作为参数传递的变量的类型。 |
underscoresToCamelCase(String) |
用作为参数传递的字符串中的camelCase字母替换下划线。例如, |
underscoresToSpaces(sParameterWithUnderscores) |
用作为参数传递的字符串中的空格替换下划线。例如, |
user() |
返回当前用户的名称。 |
variableOfType(<type>) |
建议可以分配给作为参数传递的类型的所有变量,例如 |
分享实时模板#
IntelliJ IDEA存储自动生成的XML配置文件中添加到预定义模板组的自定义实时模板组和模板的定义。
-
- 对于自定义组,该文件包含该组包含的所有模板的定义。
-
- 对于修改的预定义组,该文件仅包含添加(或修改)的实时模板的定义。
实时模板组配置文件存储在IDE配置目录的templates目录中。通过复制templates目录中的相关文件,您可以在团队成员和多个IntelliJ IDEA安装之间共享实时模板。此外,您可以基于IntelliJ平台在所有IDE之间共享实时模板。
C
如果通过IDE Settings Sync插件同步设置,则模板将存储在IDE配置目录 中的jba_config / templates下。
不要将实时模板配置文件复制到项目目录中。
IntelliJ IDEA提供用于共享实时模板的导出和导入功能,这可能比手动复制配置文件更方便。
导出实时模板配置#
-
1. 选择 文件| 从菜单中导出设置。
-
2. 在“ 导出设置”对话框中,确保选中“ 实时模板”复选框,并指定存档的路径和名称,以便保存导出的设置。
-
3. 单击“ 确定”,根据实时模板配置文件生成文件。您可以与团队成员共享此文件,也可以将其导入另一个IntelliJ IDEA安装。
导入实时模板配置#
-
1. 选择 文件| 从菜单中导入设置。
-
2. 使用导出的实时模板配置指定存档的路径。
-
3. 在Import Settings对话框中,选择Live templates复选框,然后单击OK。
-
4. 重新启动IntelliJ IDEA后,您将在编辑器上看到导入的实时模板 IntelliJ IDEA设置的实时模板页面(Ctrl+Alt+S)。
不同IDE之间共享模板的示例#
如果从源IDE中预定义但未在目标IDE中预定义的组导入自定义模板(更新),则将创建此组,但仅包含自定义模板(无默认预定义模板)。以下示例说明了将自定义模板添加到WebStorm中的预定义组 然后在PhpStorm中重用它时会发生什么 。
在WebStorm中,Handlebars模板组是预定义的,包含一个模板itar
。如果您向其添加t (tag pair)
模板,则将保存此更新:
在PhpStorm中,没有Handlebars预定义的模板组。因此,当您从WebStorm导出实时模板然后将其导入PhpStorm时,会创建Handlebars组,但仅包含t (tag pair)
模板,该模板在导出之前已添加到WebStorm中的组:
比较文件,文件夹和文本来源#
IntelliJ IDEA允许您查看任何两个文件,文件夹,文本源或数据库对象之间的差异,以及本地文件与其存储库版本之间的差异。
比较文件#
要应用更改,请使用V形按钮 。
要附加更改,请按 Ctrl (对于Windows和Linux)或 ⌘ (对于macOS): 按钮将转到 。
比较两个文件#
-
在“项目”工具窗口中选择要比较的文件。
-
从上下文菜单中,选择“ 比较文件”,或按 Ctrl+D。
您也可以选择一个文件,从上下文菜单中选择“ 比较”,然后选择项目外部的文件。
比较活动编辑器与剪贴板#
-
右键单击编辑器中的任意位置,然后 从上下文菜单中选择“ 与剪贴板比较”。
将活动编辑器与项目文件进行比较#
-
在“项目”工具窗口中右键单击要与当前打开的文件进行比较的文件。
-
从上下文菜单中选择“ 比较文件与编辑器 ”。
比较活动编辑器与任何文件#
如果您经常需要将项目外部的文件与活动编辑器进行比较,或者不希望打开“项目”工具窗口,则可以使用“ 使用编辑器比较文件” 选项,该选项允许您选择任何文件并将其与主动编辑。
要将此操作添加到编辑器选项卡的上下文菜单:
-
在“ 设置/首选项” 对话框(Ctrl+Alt+S)中,单击“ 外观和行为”下的“ 菜单”和“工具栏 ” 。
-
在右窗格中,展开“ 编辑器选项卡弹出菜单”节点,单击“ 添加后”,然后 在“ 版本控制系统”下选择“ 使用编辑器比较文件”操作。差异和合并。
将本地文件与其存储库版本进行比较#
-
在版本控制工具窗口中的任意位置选择已修改的文件。
-
单击 工具栏上的 图标或按Ctrl+D。
生产力提示#
指定'apply'和'append'的快捷方式
要为应用和追加操作指定快捷方式,请在“ 设置/首选项” 对话框(Ctrl+Alt+S)中选择 左侧的“ 键盘映射 ”,然后在“ 版本控制系统”下找到这些操作。差异和合并。
交换双方
当您比较两个文件或具有Cliboard内容的文件时,您可以通过按工具栏上的图标来交换边。
比较文件夹#
IntelliJ IDEA允许您将两个文件夹中的文件与其文件大小,内容或时间戳进行比较。差异显示在文件夹的差异查看器中:
顶部窗格列出所选文件夹中的所有文件,而底部窗格显示所选文件的两个版本之间的差异(请参阅比较文件)。
比较文件夹#
-
在“项目”工具窗口中选择要比较的文件夹。
-
从上下文菜单中,选择“ 比较目录”,或按 Ctrl+D。
-
使用以下工具栏按钮筛选列表:
-
:单击以显示左侧文件夹中存在的文件,但右侧文件夹中缺少这些文件。
-
:单击以显示右侧文件夹中存在但左侧缺少的文件。
-
:单击以显示两个文件夹中存在的文件,但其内容,时间戳或大小不同。
-
:单击以显示两个文件夹中存在的文件,这些文件与“ 比较方式”下拉列表中选择的选项相同。
-
同步文件夹#
IntelliJ IDEA允许您同步两个文件夹的内容,或将更改从一个文件夹应用到另一个文件夹。
-
对于每个文件,单击*列中的图标,直到您设置要对该文件执行的操作。
-
:将所选项目从左侧复制到右侧文件夹。如果右侧文件夹中已存在此类文件,则该文件将被覆盖。
-
:将所选项目从右侧复制到左侧文件夹。如果左侧文件夹中已存在此类文件,则会覆盖该文件。
-
:不执行任何操作(两个文件完全相同)。
-
:不执行任何操作(两个文件不同)。
-
:删除所选项目。
-
-
执行以下操作之一:
-
要将所选操作应用于当前项,请单击 工具栏上的“ 同步所选项” 按钮 。
-
要将所选操作应用于所有项目,请单击 工具栏上的“ 全部同步”按钮 。
-
比较两个文件夹中的不同文件#
有时文件可能存在于一个文件夹中,而另一个文件可能存在于另一个文件夹中(例如,VCS_library_1.4和VCS_library_1.5)。这些可能是您要比较的同一文件的版本。此外,您可能会认为文件已重命名,但与其他文件夹中的文件完全相同。IntelliJ IDEA允许您比较两个文件,其中一个文件存在于正确的文件夹中,另一个文件存在于左侧,即使这些文件被视为不同的实体。
此操作仅适用于具有相同相对路径的文件夹中的文件。
-
在左窗格和右窗格中选择要比较的文件。
-
点击相互比较新文件的图标 工具栏上。所选文件之间的差异将显示在底部窗格中。
比较任何文字来源#
除了比较文件或文件夹的内容外,您还可以打开一个空的 差异查看器并粘贴任何文本或将文件拖到左右面板中进行比较。这可能很有用,例如,如果您想要将应用程序的控制台输出与同一应用程序的输出进行比较,尽管稍作修改。
-
按, Ctrl+Shift+A 然后查找“ 打开空白差异窗口”操作。
-
在左侧和右侧面板中粘贴您要比较的任何文本。
生产力提示#
为“打开空白差异”操作指定快捷方式
在Settings / Preferences 对话框中(Ctrl+Alt+S)选择Keymap并在Version Control Systems |下找到此操作 差异和合并。
交换双方
您可以 通过按工具栏上的图标在差异查看器中交换边。