Définissez la syntaxe par défaut sur un type de fichier différent dans Sublime Text 2

731

Comment définir un type de fichier par défaut pour une certaine extension de fichier dans Sublime Text 2? Plus précisément, je souhaite que les fichiers * .cfg aient par défaut la mise en surbrillance de la syntaxe Ini, mais je n'arrive pas à comprendre comment je pourrais créer ce paramètre personnalisé.

Keiththomps
la source

Réponses:

1597

Dans la version actuelle de Sublime Text 2 (Build: 2139), vous pouvez définir la syntaxe pour tous les fichiers d'une certaine extension de fichier en utilisant une option dans la barre de menus. Ouvrez un fichier avec l'extension que vous souhaitez définir une valeur par défaut et naviguer dans les menus suivants: View -> Syntax -> Open all with current extension as... ->[your syntax choice].

Mise à jour le 2012-06-28: Les versions récentes de Sublime Text 2 (au moins depuis la version 2181) ont permis de définir la syntaxe en cliquant sur le type de syntaxe actuel dans le coin inférieur droit de la fenêtre. Cela ouvrira le menu de sélection de la syntaxe avec l'option to Open all with current extension as...en haut du menu.

Mise à jour 2016-04-19: À partir de maintenant, cela fonctionne également pour Sublime Text 3.

Colin R
la source
2
Avez-vous essayé Open all with current extension as...ou simplement défini la syntaxe via un choix dans le Syntaxmenu?
Colin R
Confirmé. Vous devez redémarrer Sublime pour que les modifications restent valables. De plus, cela ne change pas le fichier "actif" - vous pouvez le voir en regardant en bas à droite la syntaxe qu'il a choisie. Le redémarrage le corrige cependant.
dmackerman
8
Cela peut-il être fait par projet? Par exemple, pour un projet, je pourrais vouloir la syntaxe Mako pour les fichiers .html; tandis qu'un autre pourrait utiliser une autre syntaxe.
Ken Kinder
44
C'est toujours la méthode utilisée dans ST3 (à partir de la version 3010). Aucun redémarrage ne semble nécessaire et tous les fichiers actifs portant l'extension sont mis à jour automatiquement.
tbeseda
3
@ziyuang - Assurez-vous d'avoir le curseur quelque part dans le fichier ouvert.
Richard Marskell - Drackir
148

Allez dans a Packages/User, créez (ou éditez) un .sublime-settingsfichier nommé d'après la syntaxe où vous souhaitez ajouter les extensions, Ini.sublime-settingsdans votre cas, puis écrivez-y quelque chose comme ceci:

{
    "extensions":["cfg"]
}

Et puis redémarrez Sublime Text

kizu
la source
NB La syntaxe que vous souhaitez utiliser est sensible à la casse (par exemple CSSpour css) et cela remplacera la définition via l'interface utilisateur (voir le message de @ Colin)
ForbesLindesay
@Elland J'ai ouvert un problème pour le problème.
JJD
29
Je trouve plus facile avec un texte sublime 2/3, pour ouvrir votre fichier, puis sélectionnez la syntaxe que vous souhaitez utiliser. Cliquez ensuite sur Préférences-> Paramètres - Plus -> Spécifique à la syntaxe - Utilisateur. Et il créera ce fichier pour vous. Collez simplement le code ci-dessus, enregistrez et redémarrez.
kokorohakai
Utilisé de cette façon car j'ai pu supprimer un fichier de paramètres qui remplaçait mes paramètres via l'interface utilisateur
turbo2oh
Existe-t-il un moyen de configurer cela pour un projet particulier?
steinybot
21

Dans ST2, vous pouvez installer un package appelé Default FileType qui fait exactement cela.

Plus d'infos ici .

trejox
la source
1
This package sets the default file type of new files to be either the same as the current file, or a predefined default. Exactement ce que je cherchais! Merci
Ricardo Saporta
en ST3, ça marche aussi! juste besoin de quelques travaux manuels (enregistrez DefaultFileType dans le chemin utilisateur ST3.
staticor
5

Vous pouvez activer la coloration syntaxique en fonction du contenu du fichier.

Par exemple, mes Makefiles indépendamment de leur extension la première ligne comme suit:

#-*-Makefile-*- vim:syntax=make

C'est une pratique typique pour d'autres éditeurs tels que vim.

Cependant, pour que cela fonctionne, vous devez modifier le Makefile.tmLanguagefichier.

  1. Trouvez le fichier (pour Sublime Text 3 dans Ubuntu) sur:

    /opt/sublime_text/Packages/Makefile.sublime-package
    

Notez que c'est vraiment un fichier zip. Copiez-le, renommez-le avec .zip à la fin et extrayez-en le fichier Makefile.tmLanguage.

  1. Modifiez le nouveau Makefile.tmLanguageen ajoutant la clé et la chaîne "firstLineMatch" après la section "fileTypes". Dans l'exemple ci-dessous, les deux dernières lignes sont nouvelles (à ajouter par vous). La <string>section contient l'expression régulière, qui permettra la mise en évidence de la syntaxe pour les fichiers qui correspondent à la première ligne. Cette expression reconnaît deux modèles: " -*-Makefile-*-" et " vim:syntax=make".

    ...
    <key>fileTypes</key>
    <array>
        <string>GNUmakefile</string>
        <string>makefile</string>
        <string>Makefile</string>
        <string>OCamlMakefile</string>
        <string>make</string>
    </array>
    
    <key>firstLineMatch</key>
    <string>^#\s*-\*-Makefile-\*-|^#.*\s*vim:syntax=make</string>
    
  2. Placez le modifié Makefile.tmLanguagedans le répertoire des paramètres utilisateur:

    ~/.config/sublime-text-3/Packages/User/Makefile.tmLanguage
    

Tous les fichiers correspondant à la règle de première ligne doivent activer la coloration syntaxique lors de leur ouverture.

elomage
la source
C'était utile. C'est bien de savoir que c'est possible, mais éditer chaque fichier de package .sublime pour chaque type de fichier qui pourrait contenir un tel modèle n'est pas pratique. Par conséquent, je n'utiliserai probablement pas cette fonctionnalité.
Travis Spencer