738 votes

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

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

1612voto

Colin R Points 8875

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 menu. Ouvrez un fichier avec l'extension pour laquelle vous voulez définir une valeur par défaut et naviguez à travers les menus suivants: View -> Syntax -> Open all with current extension as... -> [votre choix de syntaxe].

Mise à jour le 28 juin 2012: Les versions récentes de Sublime Text 2 (au moins depuis la Build 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 syntaxe avec l'option Ouvrir tout avec l'extension actuelle en tant que... en haut du menu.

Mise à jour le 19 avril 2016: À présent, cela fonctionne également pour Sublime Text 3.

2 votes

Avez-vous essayé d'ouvrir tout avec l'extension actuelle en tant que... ou simplement de définir la syntaxe via un choix dans le menu Syntaxe ?

0 votes

Confirmé. Vous devez redémarrer Sublime pour que les modifications soient prises en compte. 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.

8 votes

Peut-on le faire pour chaque 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.

149voto

kizu Points 15989

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

{
    "extensions":["cfg"]
}

Et ensuite redémarrez Sublime Text

0 votes

N.B. La syntaxe que vous souhaitez utiliser est sensible à la casse (par exemple CSS pour css) et cela remplacera le paramètre défini via l'interface utilisateur (voir l'article de @Colin)

0 votes

@Elland J'ai ouvert un problème pour le problème.

29 votes

Je trouve cela plus facile avec sublime text 2/3, d'ouvrir votre fichier, puis de sélectionner la syntaxe que vous souhaitez utiliser. Ensuite, cliquez sur Préférences-> Paramètres - Autres -> Syntaxe spécifique - Utilisateur. Et cela créera ce fichier pour vous. Il vous suffit de coller le code ci-dessus, de sauvegarder et de redémarrer.

21voto

trejox Points 141

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

Plus d'infos ici.

1 votes

Ce package définit le type de fichier par défaut des nouveaux fichiers comme étant le même que le fichier actuel, ou un type prédéfini par défaut. Exactement ce que je cherchais! Merci

0 votes

Dans ST3, cela fonctionne également ! il suffit juste de faire un peu de travail manuel (enregistrer DefaultFileType dans le chemin utilisateur ST3).

5voto

elomage Points 583

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

Par exemple, mes Makefiles ont tous la première ligne suivante, peu importe leur extension :

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

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

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

  1. Trouvez le fichier (pour Sublime Text 3 sous Ubuntu) à l'adresse :

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

Remarque, il s'agit en réalité d'un fichier zip. Copiez-le, renommez-le avec .zip à la fin, et extrayez le fichier Makefile.tmLanguage.

  1. Modifiez le nouveau fichier Makefile.tmLanguage en ajoutant la clé "firstLineMatch" et la chaîne après la section "fileTypes". Dans l'exemple ci-dessous, les deux dernières lignes sont nouvelles (vous devez les ajouter). La section contient l'expression régulière, qui activera la coloration syntaxique pour les fichiers correspondant à la première ligne. Cette expression reconnaît deux motifs : "-*-Makefile-*-" et "vim:syntax=make".

    ...
    fileTypes
    
        GNUmakefile
        makefile
        Makefile
        OCamlMakefile
        make
    
    firstLineMatch
    ^#\s*-\*-Makefile-\*-|^#.*\s*vim:syntax=make
  2. Placez le fichier Makefile.tmLanguage modifié dans le répertoire des paramètres utilisateur :

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

Tous les fichiers correspondant à la règle de la première ligne devraient activer la coloration syntaxique lorsqu'ils sont ouverts.

3voto

Arc Points 13

La meilleure solution pour moi s'est avérée être d'utiliser le package ApplySyntax.

Les étapes sont les suivantes:

  1. Installer le package via Package Control
  2. CTRL + SHIFT + P et entrer ApplySyntax: Browse Syntaxes. Trouvez la syntaxe souhaitée ici et notez la ligne exacte affichée, par exemple, je voulais la définir en Markdown à partir du package Markdown Editing, donc pour moi la ligne était MarkdownEditing/syntaxes/Markdown.
  3. CTRL + SHIFT + P et entrer ApplySyntax: Settings.
  4. Sur la ligne "new_file_syntax": "XYZ", entrez la ligne de l'Étape 2.

Voir ici pour plus de documentation.

J'ai trouvé que cela fonctionnait mieux que le package DefaultFileType, car il n'est pas limité aux nouveaux fichiers créés en appuyant sur CTRL + N et il capture les nouveaux onglets ouverts en cliquant sur l'espace vide à droite d'un onglet ouvert.

J'espère que c'est utile à quelqu'un 11 ans après que la question originale ait été posée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X