[VIM] Executer macro sur liste de fichiers

Fermé
Stefinho - 3 août 2007 à 09:52
 Stefinho - 8 août 2007 à 09:19
Bonjour à tous !

Je suis débutant en linux et je bloque actuellement sur une macro écrite avec VIM.
Le but est d'éditer des centaines de fichiers textes, et effectuer des manipulation sur une ou plusieurs lignes de ces fichiers.
Ex :
//chaine à modifier
$ma_fonction CHAINE1 4 NULL
// action à réaliser :
$ma_fonction CHAINE1 3 NULL
$ma_fonction CHAINE2 4 NULL

On duplique la ligne et on change deux paramètres.
J'ai donc écrit en avec VIM un fichier texte avec les commandes à passer pour effectuer ces opération
Ex :
/4 NULL // on cherche la ligne désirée
yy // on copie la ligne dans le registre
p // on colle la ligne copiée
:s/4/3 // on change le code
ww // On va au mot suivant
cw CHAINE 2 // CHAINE 2 étant la nouvelle chaine remplaçant CHAINE 1
*i_CTRL-C* // On rebascule en mode commande


Une fois la macro enregistrée avec ":w macro" je veux désormais la lancer sur une liste de fichiers obtenue avec "find -name *.* > results.txt"

M'y suis je bien pris et si oui, comment lancer cette macro sur ces fichiers ?

Le but est
A voir également:

5 réponses

dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
3 août 2007 à 10:22
:n pour next, éditer le fichier suivant dans la liste.
0
Le souci n'est pas vraiment au niveau de la syntaxe (peut etre aproximative) mais plutot sur le principe de fonctionnement sur lequel j'ai un doute et sur la façon de lancer cette macro.
On m'a parlé d'une commande en bash qui ressemblerait à "vi @mymacro < malistedefichiers.

Quelqu'un aurait une idée svp ?
0
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
3 août 2007 à 12:10
0
Cela semble etre le genre de commande à passer effectivement. Merci :)
En revanche, sais tu si la manière dont j'ai écris ma macro est correcte ? (commandes écrites dans un fichier texte banal).
Merci de votre aide :)
Keep goin'on !
0
Un ptit up, j'ai vraiment besoin de votre aide ! :(
0
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
6 août 2007 à 14:38
mettre les commandes dans un fichier.cmd:
vim -c ":so! fichier.cmd" fichier_a_editer
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
6 août 2007 à 15:36
Salut,

Le but est d'éditer des centaines de fichiers textes, et effectuer des manipulation sur une ou plusieurs lignes de ces fichiers.
Juste une question :-)
T'es obligé de le faire avec Vim ou c'est juste le plaisir de decouvrir les macros de VIM?
0
Obligé non, mais j'ai cru (peut etre a tort) que ça serait assez simple de le faire avec VIM, et que de toutes façons je ne voyais pas d'autres moyens de le faire... me serais je trompé ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
7 août 2007 à 12:39
Salut,

oui, il y a d'autres moyen, mais tant que tu as réussi avec les macros vim, tant mieux :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Effectivement, je ne pense pas etre loin du but, mais en tant que bon newbie je suis avide de connaissance en Linux. Je pense donc essayer d'autres moyens pour les prochaines fois...

Merci à tous de votre aide, je pars en congs quelques jours, je verrai a mon retour si ma macro est terminee.



(desole pour le manque d'accent, mais les utiliser me plante mon navigateur IE6 emule sous Tux)
0