LeVillage.Org - Bienvenue
Besoin d'aide ?
L'hebdo
Accueil Hébergement Webmail Rencontres Wiki Village 3D Forum
 
L'hebdo
RETOUR A LA UNE

LES ARCHIVES
371370369368 367
366365364363362
Toutes les archives

LA REDACTION
Devenez reporter
Votre bureau
La rédaction
Les reporters

AIDE ET CONSEILS
Foire aux questions
Conseils d'écriture
La netiquette


Publicité

L'Echo du Village - Accueil n°215 - Jeudi 7 novembre
Rubrique technique animée par amiel


Assouvi à vie sous Vi
Comment un éditeur de texte se révèle être plus que ça

Unix est une mine d'or, certains de ses utilitaires recèlent de fabuleux trésors à même de décupler votre productivité, à condition de vous y intéresser en profondeur... Voici comment, après 13 années par ailleurs bien remplie, j'ai découvert comment aller plus loin avec l'éditeur "vi".

Un Mug, rien qu'un mug.
Pour les ceusses qui ne s'en fussent aperçus (et Dieu sait que cela existe !), ma Mie et moi convolâmes vers Parisse-y-la-soupe-populaire à l'occasion de mon 5ème bit de poids faible.
En chemin, j'ai eu l'heur et l'honneur de rencontrer une chiétitude de gens intéress...aouuuuuf...ants.
Mais ma plus belle découverte, je la dois à un mug, un bête mug.
Un mug à la kon mais pas n'importe quel mug : il s'agissait du "vi mug" : un mug sur lequel étaient étiquetés la plupart des bindings nécessaires à une utilisation intelligente de ce logiciel que les sots et les ignorants prennent à tort pour un instrument de tortu(r)e !
Encore hébété des libations de la veille, j'en parcourais la déco tout en patientant jusqu'à ce que mon café atteignît une température décente ("Il y a 3 choses que je ne supporte pas : le café brûlant, le champagne tiède et les femmes froides" Orson Welles).
13 ans de pratique obligent, je connaissais toutes lesdites commandes... sauf une :-)
:%!sort qui trie le contenu du buffer d'édition.
Géant, je me dis.
Et puis j'extrapole : % c'est "toutes les lignes du buffer", mais si je veux de la 12ème à la 28ème ligne ?
OK : :12,28!sort
Evidemment, ça marche :-) J'ai bondi de joie.
A vrai dire, le voisin du dessous pleurera son plafonnier pendant des lustres...
Et puis je continue à extrapoler...
Et si je veux virer les commentaires d'un programme en C++ ?
:%s+//.*$++
Ah zut, c'était déjà connu, ça :-)
Bon, mettons que je ne veuille que les déclarations liées à la classe Toto... Celles ci étant de la forme Toto::... Il me suffit de lancer un :%!grep Toto::
Bon, me voici avec un problème : J'ai un répertoire contenant 99 fichiers MP3.
Je veux les renommer en les numérotant (à chacun sa lubie).

0) Je n'ai pas les fichiers sous la main mais j'en ai la liste, donc, je commence par lancer du shell un petit :
perl -p -i -e 'chomp ; system("touch \"$_\"")' ../list.dat
Qui me crée dans le répertoire courant un fichier vide par ligne présente dans le fichier ../list.dat


1) Sous vi, je sors du mode édition (je n'y suis pas a priori, d'ailleurs), puis je lance :%!ls
Ca ne loupe pas, mon buffer contient maintenant les noms de tous les fichiers du répertoire courant.

2) Pas la peine de trier, c'est déjà fait, et puis, de toutes façons, je sais faire.
Par contre, je dois maintenant renommer tous ces fichiers de façon à leur donner un numéro unique...
Le numéro de ligne, par exemple... awk-ons :-)
:%!`awk ' { system( "mv \"" $0 "\" \"" ++i " - " $0 "\"" ) }'`

Si je vous dit que cette commande a pour effet d'invoquer la commande shell mv (pour déplacer ou renommer un fichier) avec comme paramètre d'origine chacune des lignes de mon buffer (entre guillemets, car certains contiennet des espaces) et pour 2nd paramètre (disons la même chose mais précédée du numéro de la ligne correspondante).

Et voilà, les possibilités sont infinies et, à tous ceux qui croyaient le contraire, vi n'est pas qu'un éditeur de texte : c'est un shell, un environbnement de travail et, le fait d'avoir découvert de telles bidouilles après des années d'usage intensif me laisse augurer de beaux jours. :-)

" Artists call me a nerd
Nerds call me an artist "


Recommander à un ami        Imprimer
CHEZ TOUS LES MARCHANDS DE JOURNAUX
Découvrez l'Écho en kiosque
Chaque mois, retrouvez l'Écho en kiosque avec un contenu inédit. 72 pages écrites par les reporters villageois. 2,30 euros seulement !
Voir le sommaire

Voir le sommaire



L'AUTEUR
Mirko vidovic
mirko vidovic

Carte de reporter

5 derniers articles :
• Coup de foudre sur la Toile
• Linux avec un "s"
• fOi

L'ÉCHO PAPIER
Abonnez-vous dès maintenant !
Recevez l'Écho du Village papier chez vous tous les mois pour 24 euros 50 (12 numéros)
>> Je m'abonne

RUBRIQUE technique

DEVENEZ REPORTER
L'Écho du Village propose à tous les villageois de devenir reporter grâce à une interface conviviale et facile d'utilisation.

 
 
Logos - Partenariats - Espace Presse - Publicite - Contacts - Mentions légales et respect de votre vie privée © VEZIM SARL