[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
A voir également:
- [VIM] Executer macro sur liste de fichiers
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Explorateur de fichiers - Guide
5 réponses
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?
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é ?
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)
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)
On m'a parlé d'une commande en bash qui ressemblerait à "vi @mymacro < malistedefichiers.
Quelqu'un aurait une idée svp ?
http://vimdoc.sourceforge.net/htmldoc/starting.html#vim-arguments
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 !
vim -c ":so! fichier.cmd" fichier_a_editer