Différences
Ci-dessous, les différences entre deux révisions de la page.
— |
vim:argdo [2013/05/07 14:26] (Version actuelle) gnieh créée |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Opérations sur plusieurs fichiers ====== | ||
+ | Il peut souvent être très pratique d'effectuer une opération sur plusieurs fichiers (par exemple, renommer une méthode si vous êtes développeur, ou changer un host si vous êtes <del>inutile</del> administrateur système). Il est naturellement possible d'effectuer cette tâche dans vim, au moyen des commandes **arg*** | ||
+ | |||
+ | Comme exemple nous prendrons le //search-and-replace// sur plusieurs fichiers. | ||
+ | |||
+ | La première chose à faire est de remplir la liste des fichiers sur lesquels nous souhaitons travailler, ce qui se fait au moyen de la commande **args** | ||
+ | <file vim> | ||
+ | :args **/*.scala | ||
+ | </file> | ||
+ | Cette commande ajoute (récursivement) tous les fichiers avant l'extension //.scala// à la liste des fichier à traiter (les chemins relatifs se font par rapport au répertoire donné par la commande **:pwd**) | ||
+ | |||
+ | Maintenant, il est possible d'effectuer une action sur tous les fichiers de la liste grâce à la commande **:argdo** comme suit | ||
+ | <file vim> | ||
+ | :argdo s/\<trait\>/abstract class/ge | update | ||
+ | </file> | ||
+ | La commande remplace toutes les occurrences du mot //trait// par //abstract class// (//g// fait que toutes les occurrences sont remplacées par fichier et pas seulement la première), et enregistre le fichier après coup grâce à la commande //update// | ||
+ | |||
+ | Und voilà ! | ||
+ | |||
+ | Il est possible d'enrichir une liste de fichiers existante via la commande **:argadd //file//** et de supprimer un fichier de la liste via **:argdelete //file//** |