SublimeText - 如何覆盖 HTML 自动注释?

SublimeText - How to override HTML auto comments?

在 SublimeText 中处理扩展 HTML 的自定义 tmLanguage 时,我尝试创建一个用于自动注释的特殊标记 ('Ctrl'+ '/')。

虽然 HTML 中的默认自动注释是以表格形式编写的,但我希望它是 --[ ]--.

我看到几个地方说正确的做法是将它添加到语言文件中:

           <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_END</string>
                   <key>value</key>
                   <string>\]--</string>
               </dict>

这似乎不起作用..

刚刚在 Ubuntu 15.04 中尝试过,它成功了:

首先检查该目录是否存在/opt/sublime_text/Packages。您应该有很多 *.sublime-package 个文件。

其中一个文件是 HTML.sublime-package,这是我们需要调整的文件。

您可能需要使用 sudo 来修改此文件。

我找到了这个 bash 函数,我们将在下一步中使用它(出于用户友好的原因,我从 vi 更改为 nano)。

zipedit(){
    echo "Usage: zipedit archive.zip file.txt"
    unzip "" "" -d /tmp 
    nano /tmp/ && zip -j --update ""  "/tmp/" 
}

Source

现在,导航到文件夹

cd /opt/sublime_text/Packages

在您的终端中粘贴 zipedit 函数。

然后通过这个参数执行它

zipedit HTML.sublime-package Comments.tmPreferences

现在 nano 文本编辑器在您的终端中打开,您必须将 HTML 评论的 <string /> 属性从 &lt;-- 修改为 --[等等..

然后你只需要重新启动 Sublime Text,魔法就完成了。


警告: 这可能会带来 unknown/unwanted 结果,例如格式正确的 html 文件中错误的语法突出显示。


更新

要在包级别进行此操作,请在您的包目录中创建一个 Comments.tmPreferences 文件并将如下内容放入其中:

<?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>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_END</string>
            <key>value</key>
            <string> ]--</string>
         </dict>
      </array>
   </dict>
</dict>
</plist>