如何将文件类型自定义为 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 -> Syntax -> 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 中的语法关联?的主要内容,如果未能解决你的问题,请参考以下文章