Salut à tous,
Je me souviens avoir fait cela il y a bien longtemps et c'était d'une puissance fabuleuse. J'utilisais vi pour modifier des fichiers de configuration en effectuant des recherche et des modifications de chaînes dans ces fichiers en "programmant" vi avec des chaînes de caractères permettant d'effectuer ces modifs et tout cela dans des scripts of course.
Pour être encore plus clair, j'envoyais (sur une seule ligne de commande et dans un script) à vi le nom du fichier à modifier puis les instructions que j'aurais effectuer à la main sous vi pour faire ces modifs. par exemple, si je devais changer la chaîne "reporig" en "/home/jeanmichel/monprog", concrètement, je lance vi prog.conf puis sous vi:
/reporig[Enter]cw/home/jeanmichel/monprog[ESC]:x[Enter]
L'une des difficultés était d'inclure [Enter] et surtout [ESC] dans cette chaîne à passer à vi. peut-être ai-je le souvenir que pour ESC, il fallait utiliser les caractères "^["... Mais pas sûr.
Peut-être est-ce grâce à l'entrée standard.
J'ai trouvé que si je fais cela
echo "rV:x" | vi toto.txt, cela modifie le première carcatère du fichier et sort en sauvegardant mais impossible de retrouver (pour l'instant) comment envoyer [Enter] et [ESC] dans cet exemple-là...
Du coup, j'ai essayé
echo "atoto^[:x" | vi toto.txt mais j'obtiens une erreur "Vim: Error reading input, exiting...".
Désolé d'avoir été très (trop) précis mais cela me manque de ne plus me souvenir de cela.
J'ai vu qu'il existait la possibilité de passer des commande avec ex (ex -sc ...) )mais pour l'instant, avant de basculer comme ça, je voudrais retrouver mes folies d'antan ^^ !!
Merci de vos lumières.
Joël.
Dernière modification par joeCool (30-11-2018 14:58:24)