如何将文件类型自定义为 Sublime Text 中的语法关联?

Posted

技术标签:

【中文标题】如何将文件类型自定义为 Sublime Text 中的语法关联?【英文标题】:How to customise file type to syntax associations in Sublime Text? 【发布时间】:2011-12-26 16:07:10 【问题描述】:

我希望 Sublime 2 编辑器将 *.sbt 文件(以突出显示语法)视为 Scala 语言,与 *.scala 相同,但我找不到在哪里进行设置。你碰巧知道吗?

【问题讨论】:

与以下内容重复:***.com/q/7574502/1346682 Set default syntax to different filetype in Sublime Text 2的可能重复 【参考方案1】:

在 Sublime Text 中(在 v2.x 和 v3.x 中均已确认)有一个菜单命令:

View -> Syntax -> Open all with current extension as ...

【讨论】:

你知道这在 sublime text 配置文件中是如何反映的吗?我正在尝试使用自动厨师食谱来实现这一点,但我不知道在设置 JSON 中设置什么。 @brad 打开语法特定设置(用户文件夹中的 Scala.sublime-settings),并添加到其中: "extensions": ["scala", "sbt"] 命令面板中神秘地缺少另一个命令 (ctrl/cmd-shift-P) 对于具有双扩展名的文件名也不能按预期工作。编辑*.sublime-settings 确实工作。 如何为打开的没有扩展名的文件设置默认语法?【参考方案2】:

我找到了答案(通过进一步检查 Sublime 2 配置文件结构):

我要打开

~/.config/sublime-text-2/Packages/Scala/Scala.tmLanguage

并编辑它以将sbt(我想作为Scala代码文件打开的文件的扩展名)添加到fileTypes键之后的数组中:

<dict>
  <key>bundleUUID</key>
  <string>452017E8-0065-49EF-AB9D-7849B27D9367</string>
  <key>fileTypes</key>
  <array>
    <string>scala</string>
    <string>sbt</string>
  <array>
  ...

PS:可能有更好的方法,比如放置我的自定义项的正确位置(代替修改包本身),我仍然想知道。

【讨论】:

现在在/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage 我认为是用户库而不是系统库:~/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage @Eric,你应该仔细阅读。它使用指定的语法打开具有特定扩展名的所有文件。大多数时候,这就是你想要的。【参考方案3】:

我将自定义更改放入用户包中:

*nix: ~/.config/sublime-text-2/Packages/User/Scala.tmLanguage
*Windows: %APPDATA%\Sublime Text 2\Packages\User\Scala.tmLanguage

这也意味着它是 JSON 格式:


  "extensions":
  [
    "sbt"
  ]

这是同一个地方

View -> Syntax -> Open all with current extension as ...

菜单项添加它(如果文件不存在则创建文件)。

【讨论】:

请注意,这是唯一允许为具有双扩展名的文件设置特定语法的方法(至少在 ST2 中)(例如,whatever.twig.html),因为菜单方法只接受最后一个! 我发现这适用于 Sublime Text 3。我使用 View -&gt; Syntax -&gt; Open all with current extension as ...~/Library/Application Support/Sublime Text 3/Packages/User/ 中创建语言文件 Markdown.sublime-settings,然后编辑此文件以添加额外的文件扩展名。【参考方案4】:

对于 ST3

$language = "language u wish"

如果存在,打开~/.config/sublime-text-3/Packages/User/*$language*.sublime-settings

否则就创建它。

设置


    "extensions":
    [
        "*yourextension*"
    ]

这种方式允许您启用复合扩展的语法(例如 sql.mustache、js.php 等...)

【讨论】:

所以要将 .js.php 文件与 javascript 相关联,我应该创建一个名为 Javascript.sublime-settings 的文件,其中填充 "extensions": [ "js.php" ] ? 是的,如果文件不存在,如果已经存在,只需在“extensions”数组中添加您想要的扩展名。 ST 现在有一个菜单项:Settings > Settings -- Syntax Specific【参考方案5】:

有一个很棒的插件叫做ApplySyntax(以前是DetectSyntax),它为文件语法匹配提供了一些其他的细节。允许正则表达式等。

【讨论】:

【参考方案6】:

有一种快速设置语法的方法: Ctrl+Shift+P,然后在输入框中输入

ss + (你要设置哪种类型)

例如:ss html +Enter

ss 表示“设置语法”

这比检查菜单的复选框要快。

【讨论】:

以上是关于如何将文件类型自定义为 Sublime Text 中的语法关联?的主要内容,如果未能解决你的问题,请参考以下文章

为自定义文件类型创建主题 - Sublime

Sublime Text自定义snippet

Sublime Text自定义扩展-格式化SQL参数 IN

如何在 sublime text 中以当前文件目录打开 cmd

sublime text插件emmet自定义模板

Sublime Text 2中自定义代码模板