Le but est d’obtenir un affichage lisible lorsqu’on édite un fichier au format XML.

Par défaut si vous ouvrez un fichier XML avec vi, il ressemblera à ça:

<?xml version="1.0" encoding="UTF-8"?><root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="/opt/monformat.xsd" format="2.0"><generation_date>2017-12-14</generation_date><compatibility><product>Jupiter</product><version>1.2</version></compatibility><system><model_number>123</model_number><serial_number>456978</serial_number></system><option name="Peinture"/><option name="Volant"/><option name="Autoradio"/><option name="Turbo"/><option name="Toit ouvrant"><parameter name="Teinté"/></option><option name="Sièges cuir"/><option name="Clim"><parameter name="Puissance">20 watts</parameter></option><option name="Allume cigare"/>    <moteur name="1000CC"><mode name="Essence"/><target name="Filtre à particules"/><target name="Boite auto"/></moteur></root>

Pas très pratique pour la lecture…

Voici comment le rendre plus sympathique à l’écran:

1. Dans votre fichier .vimrc, ajoutez cette ligne:

filetype plugin indent on

2. Ouvrez votre fichier xml avec vi, puis tapez sur la touche « Echap », puis sur « : », puis tapez:

%s/</\r</g

L’effet est d’ajouter un saut de ligne avant chaque « <« .

3. Puis tapez à nouveau sur « Echap », puis tapez:

gg=G

(rien ne s’affiche quand vous tapez cette commande, c’est normal)

Votre fichier s’affichera en colonne et avec les bonnes indentations, comme ça:

<?xml version="1.0" encoding="UTF-8"?>

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="/opt/monformat.xsd" format="2.0">
    <generation_date>2017-12-14
    </generation_date>
    <compatibility>
        <product>Jupiter
        </product>
        <version>1.2
        </version>
    </compatibility>
    <system>
        <model_number>123
        </model_number>
        <serial_number>456978
        </serial_number>
    </system>
    <option name="Peinture"/>
    <option name="Volant"/>
    <option name="Autoradio"/>
    <option name="Turbo"/>
    <option name="Toit ouvrant">
        <parameter name="Teinté"/>
    </option>
    <option name="Sièges cuir"/>
    <option name="Clim">
        <parameter name="Puissance">20 watts
        </parameter>
    </option>
    <option name="Allume cigare"/>
    <moteur name="1000CC">
         <mode name="Essence"/>
        <target name="Filtre à particules"/>
        <target name="Boite auto"/>
     </moteur>
</root>

Automatisation

Si vous ne voulez pas avoir à taper à chaque fois les 2 commandes, ajoutez une macro dans votre fichier .vimrc.

Créons une macro activable par exemple par la séquence de touches « @ » et « x ». Ajoutons la ligne suivante dans le fichier .vimrc:

let @x=':%s/</\r</g^M^[gg=G'

Important : Pour obtenir le « ^M », tapez CTRL+V puis CTRL+M, et pour obtenir le « ^[« , tapez CTRL+V puis la touche « Echap »

Désormais dans vi, il vous suffira de taper « @ » puis « x » pour que les fichiers XML se mettent en forme directement à l’écran.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Blue Captcha Image
Refresh

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.