[VIM] Executer macro sur liste de fichiers
Stefinho
-
Stefinho -
Stefinho -
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
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
Configuration: Red Hat
5 réponses
-
:n pour next, éditer le fichier suivant dans la liste.
-
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 ? -
vim -c commande liste_de_fichier ?
http://vimdoc.sourceforge.net/htmldoc/starting.html#vim-arguments -
-
-
-
-
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?
-
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é ?
-
Salut,
oui, il y a d'autres moyen, mais tant que tu as réussi avec les macros vim, tant mieux :-) -
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)