跳至内容

注释

Sublime Text 提供了一个默认命令来注释和取消注释代码行。此命令可以使用元数据文件为任何类型的文件启用。

文件格式

注释标记是使用元数据文件定义的。但是,由于注释标记的元数据通常由包需要,因此为了方便起见,在本页中单独讨论。

与常规元数据文件一样,注释元数据文件具有 .tmPreferences 扩展名并使用属性列表格式。文件名被 Sublime Text 忽略。

另请参阅

元数据 关于元数据的详细文档。

示例

让我们看一个注释元数据文件的简单示例

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>name</key>
   <string>Miscellaneous</string>
   <key>scope</key>
   <string>source.python</string>
   <key>settings</key>
   <dict>
      <key>shellVariables</key>
      <array>
         <dict>
            <key>name</key>
            <string>TM_COMMENT_START</string>
            <key>value</key>
            <string># </string>
         </dict>
      </array>
   </dict>
</dict>
</plist>

在示例中,我们突出显示了一些特定于注释元数据文件的部分。

注释元数据文件的结构

所有注释元数据文件共享相同的顶层结构,该结构继承自属性列表格式

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   ...
</dict>
</plist>

这些是注释元数据文件中所有有效的元素

name : 可选。 元数据的名称。被 Sublime Text 忽略。

xml
<key>name</key>
<string>Shell Variables</string>

scope : 必需。 逗号分隔的范围选择器列表,用于确定元数据应在哪个上下文中处于活动状态。

在大多数情况下,您将使用特定语法的基本范围。

xml
<key>scope</key>
<string>source.python</string>

settings : 必需。 设置的容器。

xml
<key>settings</key>
<dict>
 ...
</dict>

uuid : 可选。 文件的唯一标识符。被 Sublime Text 忽略。

xml
<key>uuid</key>
<string>BC062860-3346-4D3B-8421-C5543F83D11F</string>

settings 子元素

shellVariables : 必需。注释标记的容器。

xml
<key>shellVariables</key>
<array>
...
</array>

shellVariables 子元素

注意

shellVariables 数组可能包含任何任意子元素,但这里我们只关心与注释相关的子元素。有关详细信息,请参阅 Shell 变量

TM_COMMENT_START : 必需。 定义默认注释标记。

要定义其他注释标记,请将它们命名为 TM_COMMENT_START_2TM_COMMENT_START_3 等。

xml
<dict>
<key>name</key>
<string>TM_COMMENT_START</string>
<key>value</key>
<string># </string>
</dict>

TM_COMMENT_END : 可选。 定义结束注释标记。如果省略,TM_COMMENT_START 将被视为行注释标记。

如果存在并且可以找到相应的开始注释标记,则该对将被视为块注释标记。

要定义其他结束注释标记,请将它们命名为 TM_COMMENT_END_2TM_COMMENT_END_3 等。

xml
<dict>
<key>name</key>
<string>TM_COMMENT_END_2</string>
<key>value</key>
<string>*/</string>
</dict>

TM_COMMENT_DISABLE_INDENT : 可选。 有效值为 yesno。禁用 TM_COMMENT_START 标记的缩进。

要定位其他组的标记,请使用 TM_COMMENT_DISABLE_INDENT_2 等。

xml
<dict>
<key>name</key>
<string>TM_COMMENT_DISABLE_INDENT</string>
<key>value</key>
<string>yes</string>
</dict>

示例

这是一个使用一些刚刚讨论的功能的注释元数据文件的更完整的示例

xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
   <key>name</key>
   <string>Comments</string>
   <key>scope</key>
   <string>source.c</string>
   <key>settings</key>
   <dict>
      <key>shellVariables</key>
      <array>
         <dict>
            <key>name</key>
            <string>TM_COMMENT_START</string>
            <key>value</key>
            <string>// </string>
         </dict>
         <dict>
            <key>name</key>
            <string>TM_COMMENT_START_2</string>
            <key>value</key>
            <string>/*</string>
         </dict>
         <dict>
            <key>name</key>
            <string>TM_COMMENT_END_2</string>
            <key>value</key>
            <string>*/</string>
         </dict>
      </array>
   </dict>
</dict>
</plist>

一旦定义了注释元数据,您就可以使用标准的快捷键来注释和取消注释代码行。

描述快捷键
切换行注释Ctrl /
切换块注释Ctrl  /

要将快捷键绑定到首选不同的注释变体,例如 TM_COMMENT_START_3,请在您的 Default.sublime-keymap 中向 toggle_comment 命令添加一个 variant 参数。

json
{"keys":["ctrl+forward_slash"], "command":"toggle_comment","args":{"block":true, "variant":3}},