实时模板
要展开代码片段,请输入相应的模板缩写并按 Tab。 继续按 Tab 以从模板中的一个变量跳到下一个变量。 按 Shift+Tab 移动到上一个变量。
实时模板 (或 代码片段 )允许您将常用的结构插入到代码中。 这些可以是条件、块、循环等。 例如,下面的动画展示了如何通过使用预定义的 ife 缩写快速插入 if-else 块。

RubyMine 提供了许多针对各种语言和框架的预定义模板,包括 Ruby、Rails、RSpec、JavaScript 等。 如果需要,您可以自定义预定义模板或添加新模板。
实时模板有三种类型:
参数化模板 包含允许用户输入的变量。 当您 展开 一个参数化模板时,您可以手动替换变量或提供一个 表达式 来自动计算它们。
Surround templates 用用户指定的文本包装所选代码块。
展开 实时模板
展开简单模板和参数化模板
要展开一个实时模板,请输入相应的模板缩写并按 Tab。 让我们看看如何使用预定义的 ife 模板插入 if-else 块。

在编辑器中,输入
ife并按 Tab。指定所需的条件,然后按 Tab 以移动到下一个语句。
输入在条件为
true时执行的代码,并按 Tab 移动到else子句。输入在条件为
false时执行的代码,并再次按 Tab 完成。(可选)在完成之前,您可以按 Shift+Tab 移动到上一个子句并进行更改。
展开环绕模板
环绕模板可用于用标签包裹一段 HTML 代码。 执行以下步骤来完成此操作:

选择所需的代码片段并按 Ctrl+Alt+J。
在弹出的窗口中,选择 环绕 模板并按 Enter 。
输入所需的标签并按 Enter 。
创建一个简单模板
让我们添加一个不包含任何模板变量的简单模板。 例如,我们在编辑器中打开了以下 TODO 注释:
要将此代码保存为模板,请执行以下操作:
从代码片段创建一个简单模板
在编辑器中选择代码。
转到 。
在弹出的对话框中,指定以下设置。

缩写 :指定用于在编辑器中展开模板的模板缩写。 这里我们使用
todo。描述 :包含将在完成弹出窗口中显示的模板描述。
模板文本 :包含要插入代码的模板正文。
适用于 :指定可以展开创建的代码片段的语言或代码片段。 单击 更改 以指定所需的上下文。
点击 确定。
要尝试创建的模板,请在编辑器中输入
todo并按 Tab。
添加模板变量
实时模板允许您添加可用于不同目的的变量,例如:
提供提示,说明您需要在当前光标位置指定什么
提供要插入的静态默认值
提供一个表达式来计算要插入的值
让我们修改在 上一章 创建的简单实时模板,并添加提示以使输入更方便。
为模板变量添加默认值
打开 设置 并转到 页面。
选择在 上一章 中创建的
todo模板。在 模板文本 中添加
$DESCRIPTION$、$AUTHOR$和$DATE$变量,如下所示。
# TODO # Description: $DESCRIPTION$ # Author: $AUTHOR$ # Date: $DATE$请点击 编辑变量 按钮。 在弹出的 编辑模板变量 对话框中,在 默认值 列中提供用引号括起来的默认值。

单击此对话框中的 确定 ,然后单击 设置 中的 确定。
要尝试自定义模板,请在编辑器中输入
todo并按 Tab。 使用 Tab 在变量之间跳转。
如有必要,按 Shift+Tab 移动到上一个变量。
使用表达式计算变量
RubyMine 允许您使用表达式计算实时模板变量并自动插入计算值。 让我们修改在 上一过程 中创建的自定义 todo 模板。
在 页面中,选择
todo模板并单击 编辑变量 按钮。在弹出的 编辑模板变量 对话框中,指定设置,如下所示。

DESCRIPTION:保留在 上一过程 中指定的静态 默认值。AUTHOR:在AUTHOR旁展开 表达式 并从列表中选择user函数。 此函数返回当前用户的名称。DATE:在DATE旁展开 表达式 并从列表中选择date。 此函数以指定格式返回当前系统日期。对于
AUTHOR和DATE变量,启用 如果已定义则跳过 选项。 在这种情况下,RubyMine 不会建议您在展开模板时指定这些变量。
单击此对话框中的 确定 ,然后单击 设置 中的 确定。
在编辑器中输入
todo,并按 Tab 展开模板。
如您所见,RubyMine 使用
user和date函数自动填充 作者 和 日期 的值。 因此,您只需提供描述即可。
预定义模板变量
RubyMine 支持以下无法修改的预定义 实时模板 变量:
$END$表示代码片段完成时的光标位置,您无法再按 Tab 跳转到下一个变量。$SELECTION$用于环绕模板,表示要包装的代码片段。 了解更多信息,请访问 环绕模板。
环绕模板
环绕模板 使用预定义代码包裹代码块。 $SELECTION$ 预定义变量 用于表示要包裹的代码片段。 让我们看看如何创建类似于预定义 ife 模板的自定义环绕模板。
创建一个环绕模板
打开 设置 并转到 页面。
选择 Ruby 组并单击
按钮。
指定设置,如下所示。

缩写 :指定模板缩写(在本例中为
ife_sur)。描述 :包含将在 选择模板 弹出窗口中显示的模板描述。
模板文本 :以以下方式指定模板正文:
if $SELECTION$ $STATEMENT_ONE$ else $STATEMENT_TWO$ end $END$请注意,此代码片段包含
$SELECTION$变量,在展开模板时将被选定代码替换。定义 :在此对话框中单击 确定 ,然后单击 设置 中的 确定。
要展开创建的环绕模板,请在编辑器中选择所需的代码片段并按 Ctrl+Alt+J。 选择所需的环绕模板并按 Enter 。

选定的代码将作为条件插入。 使用 Tab 在变量之间跳转。 完成后,光标将放置在生成的代码片段下一行,因为
$END$变量位于 模板文本 中。
共享 实时模板
RubyMine 存储自定义实时模板组的定义,以及在自动生成的 XML 配置文件中添加到预定义模板组的模板。
对于自定义组,文件包含该组包含的所有模板的定义。
对于一个修改过的预定义组,文件仅包含添加(或修改)的 实时模板 的定义。
live template 组的配置文件存储在 templates 目录中的 IDE 配置目录。 通过复制 templates 目录中的相关文件,您可以在团队成员和多个 RubyMine 安装之间共享 实时模板。 此外,您可以在所有基于 IntelliJ 平台的 IDE 之间共享实时模板。
导出实时模板配置
请选择 。
在 导出设置 对话框中,请确保选中 实时模板 复选框,并指定导出设置将保存的归档路径和名称。
单击 确定 以根据实时模板配置文件生成文件。 您可以与团队成员共享此文件,或在另一个 RubyMine 安装上导入该文件。
导入实时模板配置
请选择 。
指定导出实时模板配置的存档路径。
在 导入设置 对话框中,选中 实时模板 复选框并点击 确定。
重新启动 RubyMine 后,您将在 编辑器 | 实时模板 设置页面  Ctrl+Alt+S 上看到导入的实时模板。
实时模板设置
要配置实时模板,请打开 设置 (Ctrl+Alt+S ),转到 页面。 在此页面上,您可以看到按语言或框架分组的所有可用实时模板。 要配置模板,请展开所需的组(例如 Ruby )并选择一个模板。
主设置
主设置
项目 | 描述 | |
|---|---|---|
默认展开方式 | 指定所有模板的默认调用键。 特定模板的单个扩展键在编辑区域中定义。 如果不希望使用标准扩展键(Tab、 Enter 或 Space ),请从此列表中选择 自定义 选项。 当选择 自定义 时, 更改 链接会出现在下拉菜单旁边,引导您进入 键位图 页面。 | |
实时模板 | 显示所有当前可用的模板缩写及其描述。 缩写按节点分组并在每个组内按字母顺序排序。 要激活模板或整个组,请选中模板或组旁边的复选框。 | |
添加 Alt+Insert | 向当前模板组添加新模板项。 您可以在编辑区域中定义模板缩写、描述、文本、变量、展开键和上下文。 | |
移除 Delete | 从列表中移除所选的 实时模板。 | |
复制 | 点击此按钮以根据选定的模板创建一个新模板。 已将一个新的模板项添加到当前节点,模板文本区域中的字段显示所选模板的定义。 | |
还原已删除的默认模板 | 点击此按钮以恢复已删除的动态模板。 此按钮仅在更改应用时启用。 | |
实时模板的上下文菜单
实时模板的上下文菜单
项目 | 描述 |
|---|---|
移动 | 将所选模板移动到指定组。 |
更改上下文 | 更改当前模板启用的上下文或上下文。 当您选择此命令时,将显示支持的语言上下文列表。 要使 RubyMine 认为模板是上下文相关的,请在上下文名称旁边选择一个复选框。 可用的上下文类型取决于启用的插件。 |
复制 | 在系统剪贴板中创建一个 序列化模板 XML。 |
粘贴 | 将 已复制模板 的 XML 表示粘贴到选定的模板组。 |
恢复默认值 | 此命令仅出现在标记为蓝色的已修改模板的上下文菜单中。 选择此命令以恢复默认模板设置。 |
模板编辑区域
模板编辑区域
在以下情况下,焦点将移至此区域:
当您点击 Add
或 复制
按钮时。
当您在列表中选择一个 实时模板。
当您在编辑器中选择代码片段并选择 。
您可以使用此区域的控件来创建新的 实时模板并编辑现有模板的设置。
您可以使用标记在字段标签上的快捷键在模板文本区中导航。
项目 | 描述 |
|---|---|
缩写 | 在此字段中,指定模板缩写。 例如,在编辑器中标识模板的字符序列。 |
描述 | 在该字段中,提供模板的可选描述或其用法示例。 |
模板文本 | 在此字段中,输入模板主体,它可能包含纯文本和格式为 |
适用于 | 该只读字段显示了编辑器应对模板敏感的语言和代码片段。 在此情境下按下 Ctrl+J ,RubyMine 将显示适合此情境的模板列表。 |
更改 | 点击此链接以修改当前模板启用的上下文集合。 点击链接后,将显示支持的语言上下文列表。 要使 RubyMine 认为模板是上下文相关的,请在上下文名称旁边选择一个复选框。 可用的上下文类型取决于启用的插件。 |
编辑变量 | 打开 编辑模板变量对话框,您可以在其中定义 RubyMine 在模板展开时应如何处理模板变量。 |
选项 | 在此区域中定义模板扩展时编辑器的行为。
|
变量中使用的预定义函数
函数列表
函数 | 描述 |
|---|---|
| 返回指示当前语言上下文中块注释结束的字符。 |
| 返回指示当前语言环境下块注释开始的字符。 |
| 将字符串转换为 camelCase。 例如, |
| 将字符串的首字母大写。 例如, |
| 将字符串的所有字母大写,并在各部分之间插入下划线。 例如, |
| 返回系统剪贴板的内容。 |
| 返回当前语言环境中表示注释结束的字符。 对于带有行注释的语言,返回值为空。 |
| 返回当前语言上下文中表示注释开始的字符。 对于带有行注释的语言,返回值是行注释的起始,与 lineCommentStart() 相同。 |
| 在变量的位置调用 代码补全。 |
| 返回所有作为参数传递给函数的字符串的拼接结果。 例如, |
| 返回当前系统日期。 默认情况下,没有参数时,它会以当前系统格式返回日期。 要使用不同的格式,请根据 SimpleDateFormat规范提供参数。 例如, |
| 返回表或视图的列列表。 上下文代码模板中使用了 |
| 返回表或视图的名称。 上下文代码模板中使用了 |
| 将字符串的首字母替换为相应的小写字母。 例如, |
| 如果表达式用于返回语句,则返回默认值。 如果表达式是错误类型,则使用 |
| 返回模板扩展时建议的字符串列表。 例如, |
| 将特殊字符转义,以便结果可以在 Java 字符串中使用。 例如,它将制表符替换为 |
| 返回模板展开时表达式的预期类型(在赋值的右侧部分、 仅在 Java 环境中可用。 |
| 返回当前文件的名称及其扩展名。 |
| 返回当前文件的名称,但不包含其扩展名。 |
| 返回当前文件的绝对路径。 |
| 返回相对于当前项目的当前文件路径。 要检查某个给定文件的相对路径,右键点击并选择 复制引用 ,或按 Ctrl+Alt+Shift+C。 |
| 返回作为参数传递的字符串的第一个单词。 例如, |
| 执行传递为字符串的 Groovy 脚本。 第一个参数是一个字符串,其中包含脚本的文本或包含脚本的文件路径。 函数将其他可选参数作为 以下示例显示了一个
groovyScript("_1.toUpperCase()", MyVar)
以下示例显示了一个
groovyScript("def result = ''; _1.split().eachWithIndex { item, index -> result = result + index.next() + '. ' + item + System.lineSeparator() }; return result;", SELECTION)
最后一个示例使用 |
| 返回指示当前语言环境中行注释开始的字符。 |
| 返回当前行号。 |
| 将字符串转换为小写并插入短横线作为分隔符。 例如, |
| 找到所有在 例如, |
| 返回在向函数或方法添加参数时的参数详细信息。 |
| 将字符串转换为 snake_case。 例如, |
| 返回指定的字符串,并以空格作为分隔符。 例如, |
| 将传入参数中的空格替换为下划线。 例如, |
| 返回指定分隔符之前的子字符串。 这对于移除测试文件名中的扩展名很有帮助。 例如, |
| 返回当前系统时间。 默认情况下,无参数时,它会返回当前系统格式的时间。 要使用不同的格式,请根据 SimpleDateFormat规范提供参数。 例如, |
| 将带有下划线的字符串(如 snake_case )转换为 camelCase。 例如, |
| 将字符串中的下划线转换为空格。 例如, |
| 返回当前用户的名称。 |