Wie kann ich den Dateityp an Syntaxzuordnungen in Sublime Text anpassen?

Antworten:

1166

In Sublime Text (sowohl in v2.x als auch in v3.x bestätigt) gibt es einen Menübefehl:

Ansicht -> Syntax -> Alle mit der aktuellen Erweiterung öffnen als ...

TedG
quelle
18
Haben Sie eine Idee, wie sich dies in den erhabenen Textkonfigurationsdateien widerspiegelt? Ich versuche dies mit einem automatisierten Kochrezept zu erreichen und kann nicht herausfinden, was in den Einstellungen von JSON eingestellt werden soll.
Brad
24
Funktioniert auch in Sublime Text 3 identisch. Danke @TedG
Fusion27
11
@brad Öffnen Sie syntaxspezifische Einstellungen (Scala.sublime-settings im Users-Ordner) und fügen Sie sie hinzu: {"extensions": ["scala", "sbt"]}
omittones
5
Funktioniert auch nicht wie erwartet für Dateinamen mit doppelter Erweiterung. Die Bearbeitung *.sublime-settings tut Arbeit.
MM.
9
Wie legen Sie eine Standardsyntax für geöffnete Dateien ohne Erweiterung fest?
Cavalcade
38

Ich habe die Antwort gefunden (indem ich die Struktur der Sublime 2-Konfigurationsdateien weiter untersuche):

Ich sollte öffnen

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

Und bearbeiten Sie es, um sbtdem Array nach dem fileTypesSchlüssel Folgendes hinzuzufügen (die Erweiterung von Dateien, die als Scala-Codedateien geöffnet werden sollen) :

<dict>
  <key>bundleUUID</key>
  <string>452017E8-0065-49EF-AB9D-7849B27D9367</string>
  <key>fileTypes</key>
  <array>
    <string>scala</string>
    <string>sbt</string>
  <array>
  ...

PS: Möge es einen besseren Weg geben, so etwas wie einen richtigen Ort, um meine Anpassungen vorzunehmen (anstatt Pakete selbst zu ändern), würde ich immer noch gerne wissen.

Ivan
quelle
1
es ist jetzt in/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
Guillaume Massé
2
Ich denke, ist die Benutzerbibliothek eher als die Systembibliothek:~/Library/Application Support/Sublime Text 2/Packages/Scala/Scala.tmLanguage
seren
4
@Eric, sollten Sie vorsichtiger lesen. Es öffnet alle Dateien mit dieser spezifischen Erweiterung mit der angegebenen Syntax. Meistens ist dies das, was Sie wollen.
Vincent Ketelaars
28

Ich habe meine benutzerdefinierten Änderungen in das Benutzerpaket eingefügt:

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

Was auch bedeutet, dass es im JSON-Format ist:

{
  "extensions":
  [
    "sbt"
  ]
}

Dies ist der gleiche Ort der

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

Menüpunkt fügt es hinzu (Erstellen der Datei, falls nicht vorhanden).

Abzieher
quelle
2
Beachten Sie, dass dies die einzige Methode ist (zumindest in ST2), mit der eine bestimmte Syntax für Dateien mit doppelten Erweiterungen festgelegt werden kann (z. B. whatever.twig.html), da die Menümethode nur die letzte verwendet!
MM.
1
Ich fand, dass dies mit Sublime Text 3 funktioniert. Ich habe View -> Syntax -> Open all with current extension as ...die Sprachdatei Markdown.sublime-settingsin erstellt ~/Library/Application Support/Sublime Text 3/Packages/User/und diese Datei dann bearbeitet, um zusätzliche Dateierweiterungen hinzuzufügen.
Jake Rayson
13

Es gibt ein exzellentes Plugin namens ApplySyntax (früher DetectSyntax), das bestimmte andere Vorteile für den Dateisyntaxabgleich bietet. erlaubt Regex-Ausdrücke usw.

Kaushik Gopal
quelle
9

Es gibt eine schnelle Methode, um die Syntax festzulegen: Ctrl+ Shift+ P, und geben Sie dann das Eingabefeld ein

ss + (welchen Typ Sie einstellen möchten)

zB: ss html +Enter

und ss bedeutet "Syntax setzen"

Es ist wirklich schneller als das Kontrollkästchen des Menüs zu aktivieren.

Hallo Wor1d
quelle
7

für ST3

$ language = "Sprache, die du wünschst"

falls vorhanden,

Gehen Sie zu ~ / .config / sublime-text-3 / Packages / User / $ language .sublime-settings

sonst

Erstelle ~ / .config / sublime-text-3 / Packages / User / $ language .sublime-settings

und setzen

{"Erweiterungen": [" Ihre Erweiterung "]}

Auf diese Weise können Sie die Syntax für zusammengesetzte Erweiterungen aktivieren (z. B. sql.mustache, js.php usw.).

xpeiro
quelle
2
Um .js.php-Dateien mit JavaScript zu verknüpfen, sollte ich eine Datei mit dem Namen Javascript.sublime-settings erstellen, die mit { "extensions": [ "js.php" ] }?
Austin Schmidt
Ja, wenn die Datei nicht vorhanden ist. Wenn sie bereits vorhanden ist, fügen Sie einfach die gewünschte Erweiterung in das Array "Erweiterungen" ein.
Xpeiro