【问题标题】:SublimeText2 Custom ScopeSublimeText2 自定义范围
【发布时间】:2012-11-15 15:43:12
【问题描述】:

我有许多使用相似代码的不同类型的项目,我的目标是在 SublimeText2 中制作仅在给定项目上激活的 sn-ps 和键绑定。

例如,我有jsg1.htmljsg40.html,我也有kwa1.htmlkwa40.html。这两个组中的每一个都有自己独特的代码,我想为每个组创建不同的 sn-ps 和键绑定。

这导致我想要创建自定义文件类型,例如 .kwa.jsg,以便我可以创建范围设置为这些文件类型的 sn-ps/key-bindings。

但是,我无法让它工作。这是我尝试过的:

a.sublime-sn-p

<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,sn-p 不会在其中激活。

所以问题是:

为使用相同键绑定和 sn-ps 的 HTML 文件组创建自定义范围的最佳方法是什么?是否通过为新文件类型创建自定义语法来创建自定义范围?或者,还有更好的方法?如果这是最好的方法,为什么我的 sn-p 在我的 .jsg 文件中不起作用?

【问题讨论】:

    标签: sublimetext2


    【解决方案1】:

    所以我想通了。要生成您自己的键绑定和 sn-ps,您需要创建一个自定义 scope。要显示文档的当前范围,您可以使用热键:

    Ctrl + ⇧ + Alt + P

    如果您打开一个html 文件并运行此命令,您应该会看到它显示text.html。目标是创建一个突出显示 html 语法的文件类型,但显示 text.wescope,其中 .we 是我们的自定义文件类型(也就是说,它可以是我们想要的任何东西)。然后我们可以在我们的键绑定和 sn-ps 文件中使用 scope

    首先要做的是:我们需要确保我们的自定义文件类型尚未与html 关联。如果您在View - Syntax - Open all with current extension as... 下设置设置,则会发生这种情况,您最初可能会这样做以使您的文件类型具有与html 相同的突出显示。别担心,我们仍然会这样做,但我们必须以另一种方式去做。

    如果您已经这样做了,请找到JSON 文件../Path/to/Sublime Text 2/Packages/Users/HTML.sublime-settings 并从属性extensions 中删除您关联的扩展名。如果您在 Windows 上找不到 Packages 文件夹,它通常隐藏在 User/AppData/Roaming 中。

    既然我们已经解除了文件的关联,我们必须首先找到使用我们想要的突出显示的语言的设置文件。就我而言,它是html,所以我去了../Path/to/Sublime Text 2/Packages/HTML。复制文件html.tmLanguageComments.tmPreferences 并将它们放在Packages 中的任何位置。对于组织,我将它们放在Packages/Users/xxx 中,其中xxx 是我的自定义文件类型。当我们稍后制作 sn-ps 时,我还建议您将它们保留在那里,以便与您的文件类型相关的所有内容都在一个地方。

    无论如何,请根据您的文件类型相应地重命名文件。在文件中,您需要更改三个属性:fileTypes(位于开头)、namescope(最后两个位于末尾)。相应地替换那些内容。确保scopeName 采用text.___ 的形式。

    更改Comments.tmPreferences 文件的scope,您就可以使用自定义文件类型了。它现在将突出显示 html 文件,并允许您在 sn-ps 和键绑定中将其用作 scope

    另外,如果您的自定义文件是 HTML 文件,那么当您打开它们时浏览器显示它们不会有任何问题。

    任务完成!

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 2015-07-07
      • 2017-09-13
      • 2015-12-11
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多