Je peux utiliser
:5,12s/foo/bar/g
pour rechercher foo
et le remplacer par bar
entre les lignes 5 et 12. Comment puis-je faire cela uniquement dans les lignes 5 et 12 (et non dans les lignes intermédiaires) ?
Je peux utiliser
:5,12s/foo/bar/g
pour rechercher foo
et le remplacer par bar
entre les lignes 5 et 12. Comment puis-je faire cela uniquement dans les lignes 5 et 12 (et non dans les lignes intermédiaires) ?
Question intéressante. Il semble qu'il n'y ait qu'une sélection de plages et pas de sélection de lignes multiples :
http://vim.wikia.com/wiki/Ranges
Cependant, si vous avez quelque chose de spécial sur les lignes 5 et 12, vous pouvez utiliser la fonction :g
opérateur. Si votre fichier ressemble à ceci (les chiffres sont donnés à titre indicatif) :
1 line one
2 line one
3 line one
4 line one
5 enil one
6 line one
7 line one
8 line one
9 line one
10 line one
11 line one
12 enil one
Et vous voulez remplacer one
por eno
sur les lignes où il y a enil
au lieu de line
:
:g/enil/s/one/eno/
Vous pourriez utiliser ed
- un éditeur de texte orienté ligne avec des commandes similaires à vi et vim. Il est probablement antérieur à vi et vim.
Dans un script (utilisant un document ici qui traite les entrées jusqu'au marqueur EndCommand), cela ressemblerait à ceci :
ed file <<EndCommands
5
s/foo/bar/g
7
s/foo/bar/g
wq
EndCommands
Bien entendu, les commandes ed peuvent également être utilisées sur la ligne de commande.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.