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

How to customise file type to syntax associations in Sublime Text?

我希望Sublime 2编辑器将*.sbt文件(突出显示语法)视为scala语言,与*.scala相同,但我找不到设置该文件的位置。你知道吗?


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

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


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

我要打开

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

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

1
2
3
4
5
6
7
8
9
<dict>
  <key>bundleUUID</key>
  <string>452017E8-0065-49EF-AB9D-7849B27D9367</string>
  <key>fileTypes</key>
 
    <string>scala</string>
    <string>sbt</string>
 
  ...

附言:也许有更好的方法,比如一个合适的地方来放置我的定制(安装修改包本身),我还是想知道。


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

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

也就是说它是JSON格式的:

1
2
3
4
5
6
{
 "extensions":
  [
   "sbt"
  ]
}

这是同一个地方

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

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


有一个名为applysyntax(以前叫detectsyntax)的优秀插件,它为文件语法匹配提供了某些其他细节。允许regex表达式等。


对于ST3

$language="希望的语言"

如果存在,

转到~/.config/sublime-text-3/packages/user/$language.sublime-settings

其他的

创建~/.config/sublime-text-3/packages/user/$language.sublime-settings

并设置

{"扩展":["YouReXistar"]}

通过这种方式,您可以为复合扩展启用语法(例如,sql.mustache、js.php等…)


有一种快速设置synatx的方法:Ctrl+Shift+P输入框

ss + (which type you want set)

例如:ss html+Enter

ss表示"设置synatx"

它比检查菜单的复选框还快