我有许多使用类似代码的不同类型的项目,我的目标是在SublimeText2中制作仅在给定项目上激活的片段和键绑定。
所以,例如,我有jsg1.html
到jsg40.html
,我也有kwa1.html
到kwa40.html
。这两个组中的每一个都有独特的代码,我想为每个组创建不同的片段和键绑定。
这使我想要创建自定义文件类型,例如.kwa
和.jsg
,这样我就可以创建片段/密钥绑定,并将范围设置为这些文件类型。
然而,我无法使其发挥作用。这就是我尝试过的:
a.sublime-片段
<snippet>
<content><![CDATA[
<a href="$1" style="font-family: Segoe UI, Lucida Sans Unicode, Arial; color:#2f6497; font-size:14px; text-decoration:underline;">$2</a>
]]></content>
<tabTrigger>aj</tabTrigger>
<scope>source.jsg</scope>
</snippet>
jsg.tmLanguage
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>jsg</string>
</array>
<key>name</key>
<string>jsg</string>
<key>scopeName</key>
<string>source.jsg</string>
</dict>
</plist>
这两个文件都在我的Packages/User
文件夹中。但是,我有一个文件test.jsg
,并且该代码段不会在其中激活。
所以问题是:
为使用相同键绑定和片段的HTML文件组创建自定义作用域的最佳方法是什么?是否通过为新文件类型创建自定义语法来创建自定义范围?或者,还有更好的方法?如果这是最好的方式,为什么我的代码段不在我的.jsg
文件中?
答案 0 :(得分:0)
所以我想出来了。要生成自己的密钥绑定和代码段,您需要创建自定义scope
。要显示文档的当前范围,可以使用热键:
Ctrl + ⇧ + Alt + P
如果您打开html
文件并运行此命令,您会看到它显示text.html
。目标是使文件类型突出显示html
语法,但显示scope
text.we
.we
其中scope
是我们的自定义文件类型(也就是说,它可以是什么我们想要的)。然后,我们可以在密钥绑定和代码段文件中使用html
。
首先要做的是:我们需要确保我们的自定义文件类型尚未与View - Syntax - Open all with current extension as...
相关联。如果您在html
下设置了此设置,您最初可能会这样做,以使您的文件类型与JSON
具有相同的突出显示。别担心,我们仍然会这样做,但我们必须采取另一种方式。
如果您已经完成,请找到../Path/to/Sublime Text 2/Packages/Users/HTML.sublime-settings
文件extensions
并从属性Packages
中删除您关联的扩展程序。如果您在Windows上找不到User/AppData/Roaming
文件夹,则通常隐藏在html
。
现在我们已经解除了文件的关联,我们必须首先找到使用我们想要的突出显示的语言的设置文件。就我而言,它是../Path/to/Sublime Text 2/Packages/HTML
,所以我去了html.tmLanguage
。复制文件Comments.tmPreferences
和Packages
并将其放在Packages/Users/xxx
中的任意位置。对于组织,我将它们放在xxx
中fileTypes
是我的自定义文件类型。当我们稍后制作片段时,我还建议您将它们保留在那里,以便与您的文件类型相关的所有内容都在一个地方。
无论如何,根据您的文件类型相应地重命名文件。在文件中,您需要更改三个属性:name
(它位于开头),scope
和scopeName
(最后两个位于最后)。相应地替换那些内容。请确保text.___
采用scope
格式。
更改Comments.tmPreferences
文件的html
,您可以使用自定义文件类型。它现在将显示scope
文件的突出显示,并允许您将其用作片段和密钥绑定中的HTML
。
此外,如果您的自定义文件是{{1}}个文件,浏览器在打开它们时不会出现任何问题。
完成任务!