如何在Sublime Text中自定义文件类型到语法关联?

Iva*_*van 497 syntax-highlighting sublimetext

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

小智 1135

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

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

  • 在Sublime Text 3中同样有效.谢谢@TedG (24认同)
  • 你知道如何在sublime文本配置文件中反映出来吗?我正在尝试使用自动化的厨师食谱实现这一点,我无法弄清楚在JSON设置中要设置什么. (16认同)
  • @brad打开语法特定设置(用户文件夹中的Scala.sublime-settings),并添加到它们:{"extensions":["scala","sbt"]} (9认同)
  • 如何为没有扩展名的已打开文件设置默认语法? (9认同)
  • NB.对于没有扩展名的文件名,不要按预期工作. (7认同)
  • 对于具有双扩展名的文件名,也无法正常工作.编辑`*.sublime-settings`*确实*有效. (4认同)

Iva*_*van 37

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

我打开了

~/.config/sublime-text-2/Packages/Scala/Scala.tmLanguage
Run Code Online (Sandbox Code Playgroud)

并编辑它以在键之后添加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>
  ...
Run Code Online (Sandbox Code Playgroud)

PS:可能有更好的方法,比如放置我的自定义的正确位置(自己修改包装),我还是想知道.

  • @Eric,你应该仔细阅读..它打开具有指定语法的特定扩展名的所有文件.大多数时候,这就是你想要的. (4认同)
  • 它现在位于``/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage``` (2认同)
  • 我认为是用户库而不是系统库:`〜/ Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage` (2认同)

squ*_*gee 28

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

*nix: ~/.config/sublime-text-2/Packages/User/Scala.tmLanguage
*Windows: %APPDATA%\Sublime Text 2\Packages\User\Scala.tmLanguage
Run Code Online (Sandbox Code Playgroud)

这也意味着它采用JSON格式:

{
  "extensions":
  [
    "sbt"
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是同一个地方

View -> Syntax -> Open all with current extension as ...
Run Code Online (Sandbox Code Playgroud)

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

  • 请注意,这是唯一允许为具有双扩展名的文件设置特定语法的方法(至少在ST2中)(例如,`whatever.twig.html`),因为菜单方法只接受最后一个! (2认同)

Kau*_*pal 13

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


xpe*_*iro 7

对于ST3

$ language ="你希望的语言"

如果存在,

转到〜/ .config/sublime-text-3/Packages/User/$ language .sublime-settings

其他

创建〜/ .config/sublime-text-3/Packages/User/$ language .sublime-settings

并设定

{"extensions":[" yourextension "]}

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

  • 因此,为了将.js.php文件与JavaScript相关联,我应该创建一个名为Javascript.sublime-settings的文件,其中填充了`{"extensions":["js.php"]}`? (2认同)

小智 5

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

ss +(你想要的类型)

例如:ss html +Enter

ss的意思是"设置synatx"

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