1

同様のコードを使用するさまざまなタイプのプロジェクトが多数あり、私の目標は、特定のプロジェクトでのみアクティブになる SublimeText2 のスニペットとキー バインディングを作成することです。

たとえば、私はjsg1.htmlthroughを持ってjsg40.htmlおり、私もkwa1.htmlthroughを持っていkwa40.htmlます。これら 2 つのグループにはそれぞれ固有のコードがあり、それぞれに異なるスニペットとキー バインディングを作成したいと考えています。

.kwaこれにより、やなどのカスタム ファイル タイプを.jsg作成して、それらのファイル タイプに設定されたスコープでスニペット/キー バインディングを作成できるようになりました。

しかし、私はそれを機能させることはできません。これは私が試したことです:

a.sublime-snippet

<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ファイルで機能しないのはなぜですか?

4

1 に答える 1

0

だから私はこれを理解しました。独自のキー バインディングとスニペットを生成するには、カスタム を作成する必要がありますscope。ドキュメントの現在の範囲を表示するには、次のホットキーを使用できます。

Ctrl + ⇧ + Alt + P

ファイルを開いてhtmlこのコマンドを実行すると、text.html. html目標は、シンタックスのように強調表示するファイルタイプを作成することですが、カスタム ファイルタイプscopetext.weどこにあるかを表示します.we(つまり、任意のファイル タイプにすることができます)。それをscopeキーバインディングとスニペットファイルで使用できます。

まず最初に、カスタム ファイルタイプがまだ .xml に関連付けられていないことを確認する必要があり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/HTMLhtml.tmLanguageファイルをコピーして、 のComments.tmPreferences任意の場所に配置しますPackages。整理するために、カスタムファイルタイプPackages/Users/xxxがある場所にそれらを置きます。xxx後でスニペットを作成するときは、ファイル タイプに関連するすべてのものが 1 か所にまとめられるように、スニペットをそこに保管することもお勧めします。

とにかく、ファイルタイプに基づいて、それに応じてファイルの名前を変更します。ファイル内で、3 つの属性を変更する必要があります: fileTypes(先頭にあります)、name、およびscope(最後の 2 つは最後にあります)。それに応じてそれらの内容を置き換えます。scopeNameが の形式であることを確認してくださいtext.___

scopeファイルのを変更するComments.tmPreferencesと、カスタム ファイル タイプを使用できるようになります。ファイルの強調表示が表示され、スニペットやキーバインディングでhtml使用できるようになりました。scope

また、カスタム ファイルがHTMLファイルである場合、ブラウザを開いたときにブラウザで問題なく表示されます。

任務完了!

于 2012-11-21T17:35:38.520 に答える