Comment formater automatiquement / indenter XML / HTML dans Notepad ++

628

Existe-t-il un moyen de ré-indenter un bloc de code? Je cherche quelque chose de similaire à Ctrl+ Shift+ Fdans Eclipse (Auto-Format / Indent).

Pour être clair,

  • Je sais déjà comment formater XML en dehors de Notepad ++ (Eclipse fonctionne très bien, comme mentionné), donc je n'ai pas besoin d'un tas de liens vers d'autres outils de formatage XML.
  • Je travaille spécifiquement avec XML et HTML.
  • Idéalement, il existe une liaison de touches aussi pratique que celle d'Eclipse, donc je n'ai pas à interrompre mon flux de travail.

Je connais déjà NppAutoIndent - cela ne fonctionnera pas, car je travaille avec XML, HTML et CSS.

SBoss
la source

Réponses:

838

Depuis que j'ai mis à jour vers 6.3.2, j'utilise XML Tools.

  • installez les outils XML via le plugin Admin.
  • utilisez le raccourci Ctrl+ Alt+ Shift+ B( ou menu → Plugins → Outils XML → Pretty Print)

Dans les anciennes versions: menu → TextFX → HTML Tidy → Tidy: Reindent XML.

remipod
la source
11
J'ai installé la version 5.9.8 et ajouté TextFX en tant que plugin. Plugins -> Plugin Manager -> Afficher Plugin Manager. Sélectionnez TextFX et installez. Après un redémarrage de npp, le menu 'TextFS' devrait être visible.
remipod
19
Méfiez-vous de l' erreur libtidy.dll manquante dans les versions récentes lors de l'installation du plugin HTMLTidy.
Amos M. Carpenter
11
Les outils XML formateront XHTML, mais pas HTML. Essayez de formater ceci: <form><input><input><input><input><input></form>. Votre code doit être dans ce format pour fonctionner, ce qui sera une rupture pour de nombreux développeurs:<form><input /><input /><input /><input /><input /></form>
thdoan
1
Recherchez l'option Format dans le menu: Extensions-> Outils XML -> Pretty print (avec sauts de ligne)
fl0w
1
Soyez très prudent avec cela, cela transformera <div> </div> en <div /> si les div sont vides. Cela pourrait être un changement de rupture pour les navigateurs Web qui rendent les styles CSS.
Timothy Gonzalez
53

Installez le plugin Tidy2. J'ai Notepad ++ v6.2.2, et Tidy2 fonctionne bien jusqu'à présent.

Dima
la source
5
J'appuie ceci, Tidy2 a fait le travail pour le balisage HTML et fait un très bon travail.
DWils
2
Je tiers ceci. XML Tools ne fonctionnait pas pour moi et ne pouvait pas le faire fonctionner avec TextFX
Christian Vielma
4
Merci .. 'XML Tools' n'a pas fonctionné sur certains fichiers et c'est ce qui a fonctionné pour moi.
Subhashi
4
Attention: certaines entités de caractère HTML sont remplacées par leur caractère unicode lors du rangement. Ceci indépendamment de la configuration Tidy2 ou de l'encodage du document. Par exemple, "& # 8217;" avant le rangement devient "'" (guillemet simple "intelligent") après le rangement. Cela a rendu Tidy2 inutilisable pour moi. Le projet n'a pas été mis à jour depuis 2012.
trebormf
aucune option pour utiliser des tabulations au lieu d'espaces d'indentation ne tue cela pour moi.
cori
36

Pour ceux qui ne le savent pas, npp a beaucoup de support des plugins et d'autres projets. Vous pouvez télécharger ces plugins depuis SourceForge .

entrez la description de l'image ici

Vous avez besoin XML Tools formater votre texte en n ++

Après avoir téléchargé XML Tools ..

Quitter le bloc-notes ++

Allez dans C:\Program File\Notepad++.... Votre dossier installé N ++.

  1. Placez ci-dessous les fichiers des outils xml que vous avez téléchargés dans le dossier racine npp en copy replace

entrez la description de l'image ici

  1. Accédez au ..\Pluginssous-dossier et placez-le sous le fichier téléchargé

entrez la description de l'image ici

Redémarrez et profitez !!!

Ctrl+ Alt+ Shft+ Bpour formater.

Some Java Guy
la source
4
Je ne semble pas avoir de gestionnaire de plugins sur le mien - j'ai notepad ++ 7.3.3.
Chouette
14

C'est la troisième fois que j'installe Windows et npp et après un certain temps, je me rends compte que la fonction bien rangée ne fonctionne plus. Donc, je recherche une solution sur google, viens sur ce fil, puis avec l'aide de quelques autres fils, je le corrige enfin. Je vais mettre un résumé de toutes mes actions une fois pour toutes.

  1. Installez le plugin TextFX: Plugins -> Plugin Manager -> Show Plugin Manager. Sélectionnez TextFX Characters et installez. Après un redémarrage de npp, le menu 'TextFX' devrait être visible. (crédits: @remipod).

  2. Installez libtidy.dll en collant le dossier Config à partir d'un ancien package npp: suivez les instructions de cette réponse .

  3. Après avoir un dossier Config dans votre dernière destination d'installation npp (généralement C: \ Program Files (x86) \ Notepad ++ \ plugins), npp a besoin d'un accès en écriture à ce dossier. Cliquez avec le bouton droit sur le dossier Config -> Propriétés -> onglet Sécurité -> sélectionnez Utilisateurs, cliquez sur Modifier -> cochez Contrôle total pour autoriser l'accès en lecture / écriture. Notez que vous avez besoin de privilèges d'administrateur pour ce faire.

  4. Redémarrez npp et vérifiez TextFX -> TextFX HTML Tidy -> Tidy: Reindent XML works.

Vladimir Grigorov
la source
Si vous utilisez le paramètre "allowAppDataPlugins" (autorisant les plugins par utilisateur), vous pouvez le faire en plaçant le dossier bien rangé de l'étape 2 dans votre répertoire de plugins utilisateur et en sautant l'étape 3.
palswim
@palswim: Nice, merci! Votre solution est plus propre lorsqu'un utilisateur utilise le npp.
Vladimir Grigorov
9

Notepad ++ ne fournit pas une telle fonctionnalité par défaut. Mais vous pouvez utiliser certains outils en ligne pour mettre en forme automatiquement du texte comme https://www.freeformatter.com/xml-formatter.html .

Ça aide. :)

Daksh Agrawal
la source
2
Bien que cette réponse soit une solution de contournement plutôt qu'une solution à la question des PO, c'est la seule chose qui a fonctionné pour moi. Les outils XML et Tidy2 ont tous deux des problèmes.
Nigel Alderton le
8

J'ai dû mettre à jour les paramètres du proxy sous Plugins -> Plugin Manager -> Afficher Plugin Manager -> Paramètres pour voir tous les PlugIns dans la liste "Disponible".

Après cela, l'installation des "Outils XML" a été facile et a fait le travail demandé comme décrit ci-dessus.

Oliver Meyer
la source
En utilisant "XML Tools" le retrait n'était pas comme je l'avais demandé pour le code HTML + Javascript. Le plugin "UniversalIndentGUI" trouvé fait bien le travail en définissant la langue sur HTB (HTML, XML, XSL) puis en exécutant "Retrait du texte" dans le menu des plugins.
GuruM
6

Pour répondre directement à l'OP, jetez un œil au site de ce type: Thomas Hunter Notepad ++ Tidy for XML . Des étapes simples à suivre et vous obtenez un formatage très agréable de votre XML directement dans NPP. Jusqu'à présent, la seule anomalie que j'ai trouvée est liée à des éléments à fermeture automatique imbriqués EG:

<OuterTag>Text for outer element<SelfClosingTag/></OuterTag>

Sera rangé jusqu'à:

<OuterTag>Text for outer element
<SelfClosingTag/></OuterTag>

Il peut y avoir un moyen de résoudre ce problème, mais pour le moment, il est parvenu à réduire le nombre de lignes dans mon document de 300 Ko et cette anomalie particulière peut être contournée.

delliottg
la source
1

J'utilise Notepad 7.6 avec "Plugin Admin" et je n'ai pas pu trouver XML Tools.
J'ai dû l'installer manuellement comme @ some-java-guy l'a fait dans sa réponse, sauf que mon dossier de plugins était situé ici: C:\Users\<my username>\AppData\Local\Notepad++\plugins
dans ce répertoire, j'ai créé un nouveau répertoire (nommé XmlTools) et y ai copié XMLTools.dll. (Et j'ai copié toutes les dépendances dans le répertoire Notepad ++ dans les fichiers programme.)

Björn
la source
Avec Notepad ++ v7.8.4, "XML Tools" est disponible dans "Plugin Admin". Peut-être qu'il y avait autrefois une incompatibilité ou quelque chose. Il semble toujours qu'il soit également développé activement, étant donné que le dernier commit a été publié
Micah Lindstrom
1

Installez simplement le dernier bloc-notes ++ et installez le retrait par pli. Dans la barre de menus, sélectionnez Plugins -> Plugins Admin et selct indent By fold and the install. Fonctionne le mieux

Daniel Nyamasyo
la source
cela devrait être la réponse d'accepter maintenant, car je ne peux pas faire fonctionner l'outil xml ou tidy2. Quoi qu'il en soit, pouvons-nous attribuer un raccourci pour cette utilisation?
Irfandi D. Vendy
La dernière version de Notepad ++ (7.8.6) est très décevante. J'ai essayé d'installer IndentByFold dans la version 7.5.6, et il a cassé le merveilleux plugin AutoSave de Franco Stellari, https://sites.google.com/site/fstellari/nppplugins . Désolé: pour moi, c'est une rupture. (!) Probablement rien de mal en soi avec IndentByFold de Frank Fesevur. Pour l'instant, je blâme la dernière version de Notepad ++, https://community.notepad-plus-plus.org/topic/16449 . Pitoyable.
Henke
Quant à moi, cela a fonctionné. J'utilise la v7.8.4
Daniel Nyamasyo
Je risque de glisser hors sujet ici, mais si quelqu'un peut signaler une version de Notepad ++ ultérieure à 7.5.6 qui fonctionne avec le plug-in AutoSave 1.60 de Franco Stellari, https://sites.google.com/site/fstellari/nppplugins , je serait plus qu'heureux de passer à cette version. Sinon - il n'y a aucun moyen de mettre à jour Notepad ++ 7.5.6 vers une version ultérieure. La version 0.7 d'IndentByFold fonctionne aussi pour moi. Mais je m'oppose à mettre des espaces (de fin) dans des lignes vides, ce que fait IndentByFold.
Henke
Ma version de Notepad ++ est 7.5.6. J'ai maintenant essayé 1) XML Tools, 2) HTML Tidy, 3) Tidy2, AND 4) IndentByFold 0.7. Les outils XML fonctionnent en quelque sorte, mais font un désordre déplorable de mon code HTML, https://i.imgur.com/oLOB30Z.png . Ni HTML Tidy ni Tidy2 ne fonctionnent du tout. IndentByFold 0.7 est la seule solution que je puisse utiliser. Je n'aime pas que cela place des espaces (de fin) sur des lignes vides, mais je peux vivre avec ça. Je ne soutiens toujours pas cette réponse (par Daniel Nyamasyo). La raison en est que je suis fortement en désaccord avec les conseils d'utilisation de la dernière version de Notepad ++.
Henke