Faire Notepad ++ mémoriser une langue particulière pour un fichier particulier?

10

J'ai un certain nombre de fichiers que j'aimerais colorer de différentes manières, même s'ils ont la même extension. Par exemple, j'ai quelques fichiers * .config qui sont en fait des fichiers Python et d'autres qui sont des fichiers XML. Lorsque je les ouvre, je dois changer manuellement la langue en Python ou XML.

Ce serait bien si, par exemple, Notepad ++ se souvenait que c: \ foo \ bar \ whatevs.config devrait utiliser le style Python, mais c: \ hey \ ho \ boo.config devrait utiliser le style XML.

Est-il possible dans Notepad ++ de dire "rappelez-vous la langue utilisée la dernière fois que le fichier a été ouvert"? Un plugin peut-être?

mhenry1384
la source
Vous rencontrez des problèmes quelque part en utilisant les extensions de fichier correctes?
iglvzx
1
J'ai une application Python qui utilise des fichiers .config qui sont vraiment des fichiers Python, et .NET utilise des fichiers .config qui sont vraiment des fichiers XML. Comme autre exemple, j'ai des fichiers de démarque qui utilisent l'extension .txt car ils se synchronisent avec une application Android qui ne comprend pas ce que sont les fichiers .md.
mhenry1384
Je vois. Se souvient-il de la langue que vous définissez lorsque vous fermez Notepad ++ avec le fichier ouvert, puis rouvrez Notepad ++?
iglvzx
2
En fait, c'est le cas, si vous avez coché "Mémoriser la session en cours pour le prochain lancement" (ce que je n'ai pas). Mais il l'oublie lorsque vous fermez le fichier et le rouvrez.
mhenry1384

Réponses:

12

Il existe une option GUI pour configurer un lien statique entre l'extension de fichier et la langue (au lieu de modifier manuellement le %APPDATA% langs.xmlfichier ou le %PROGRAMFILES% langs.model.xmlfichier comme le suggère @ jakub.g):

Si vous allez dans Paramètres -> Configurateur de style -> sélectionnez la langue sur la gauche, puis en bas de l'écran, deux zones de texte apparaissent:

Configurateur de style

Dans cet exemple, j'ai ajouté "config" à la User ext.zone de texte afin que chaque fois que j'ouvre un fichier avec une extension de fichier .config, la coloration syntaxique XML soit automatiquement sélectionnée dans le menu Langue.

Je sais que cela ne résout pas le problème de se souvenir de la mise en évidence de la syntaxe à appliquer à un seul fichier spécifique, mais c'est un moyen facile de configurer la mise en surbrillance pour toutes les extensions de fichier.

Si vous souhaitez vous rappeler la sélection de la coloration syntaxique pour un fichier individuel, je pense que la seule option est de cocher la case: Paramètres -> Préférences -> MISC -> Mémoriser la session en cours pour le prochain lancement.

wweicker
la source
cela ne l'enregistre cependant pas. une fois que vous fermez et rouvrez notepad ++, les modifications ont disparu.
r3wt
@ r3wt Je pense que vous devez run as administratorsinon il n'aura pas les autorisations pour enregistrer les préférences dans votre profil utilisateur.
wweicker
Cela ne fonctionnera pas pour les extensions de fichiers intégrées. Vous devez supprimer manuellement l'extension de la partie ext de la langue dans le fichier langs.xml. Ce fichier peut vivre dans% APPDATA% / Notepad ++ ou le répertoire d'installation de Notepad ++ ou dans votre stockage cloud, c'est-à-dire DropBox, OneDrive ou GoogleDrive si vous avez activé l'option Paramètres dans le cloud.
Ian Stanway
Est-ce que cela fonctionne pour les langues personnalisées? Je ne trouve le mien nulle part dans la liste.
Fabian Röling
1

Ce n'est pas tout à fait ce que vous demandez, mais s'applique à votre commentaire concernant les fichiers .txt en tant que fichiers Markdown. Une option possible consiste à définir Markdown comme langue pour tous les fichiers .txt.

Cela suppose que markdown_npp est installé. Modifiez les fichiers suivants à vos risques et périls (effectuez des copies de sauvegarde avant de modifier ces fichiers):

  • Ouvrez langs.xml à partir de% appdata% \ Notepad ++
    • Supprimer l' extension txt de la langue normale:
      • Avant: <Language name="normal" ext="txt" />
      • Après: <Language name="normal" ext="" />
  • Ouvrez userDefineLang.xml à partir de% appdata% \ Notepad ++
    • Ajoutez l' extension txt au langage Markdown:
      • Avant: <UserLang name="Markdown" ext="md">
      • Après: <UserLang name="Markdown" ext="md txt">
  • Redémarrez le bloc-notes ++
Mike Henry
la source
travaillé pour moi, et c'était la seule façon pour moi de faire en sorte que le bloc-notes ++ enregistre de façon permanente la relation. merci
r3wt
0

Pour ajouter une connexion fixe entre l'extension et la langue, ouvrez le dossier NPP (par exemple C:\Program hFiles\Notepad++), il y a plusieurs fichiers XML. Modifiez-les (je ne me souviens pas exactement, langs.xmlou langs.model.xml).

Exemple: <Language name="cpp" ext="h hpp hxx cpp cxx cc">

Recherchez la langue souhaitée et ajoutez l'extension.

Cependant, je ne sais pas comment faire varier la même extension par dossier.

jakub.g
la source