ChatGPT解决这个技术问题 Extra ChatGPT

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

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


A
Air

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

查看 -> 语法 -> 以当前扩展名打开所有...


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

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

我要打开

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

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

<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,您应该仔细阅读。它使用指定的语法打开具有该特定扩展名的所有文件。大多数时候,这就是你想要的。
s
squeegee

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

*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 ...

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


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

对于 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" ] }
是的,如果文件不存在,如果已经存在,只需在“扩展”数组中添加您想要的扩展名。
ST 现在有一个菜单项:Settings > Settings -- Syntax Specific
K
Kaushik Gopal

有一个名为 ApplySyntax(以前称为 DetectSyntax)的出色插件,它为文件语法匹配提供了某些其他细节。允许正则表达式等。


U
Ulf Gjerdingen

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

ss + (你要设置的类型)

例如:ss html +Enter

和 ss 表示“设置语法”

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