how to search and replace in vim ?
- State: Utah
- Country: United States
- Listed: 2 February 2024 15h11
- Expires: This ad has expired
Description
how to search and replace in vim ?
**Maîtriser la recherche et le remplacement dans Vim : Guide étape par étape avec des exemples**
Vim, le puissant éditeur de texte, offre de nombreuses commandes pour une édition efficace. L’une de ses fonctionnalités les plus puissantes est la commande `:%s//`. Que vous nettoyiez du code, des fichiers ou de grands documents, apprendre à utiliser la recherche et le remplacement de Vim vous fera économiser des heures de défilement et de saisie. Plongeons dans la façon de maîtriser cette fonctionnalité surpuissante.
### La commande de substitution : le cœur de la recherche et du remplacement
La commande `:substitute` (abrégée en `:s`) de Vim est l’épine dorsale des opérations de recherche et de remplacement. Voici la syntaxe :
“`vim
[start,line-end]s/old_pattern/new_string/[flags]
“`
– **Plage**: Spécifie où appliquer le changement (par exemple, `10,20` pour les lignes 10-20, ou `%` pour tout le fichier). Par défaut, la ligne courante si aucune plage n’est spécifiée.
– **Motif/Remplacement**: Remplace toutes les instances de `old_pattern` par `new_string`.
– **Indicateurs**: Options comme `g`, `c` ou `i` qui modifient le comportement de la commande.
### Indicateurs essentiels : affiner votre recherche
Ajoutez des indicateurs pour contrôler comment les substitutions fonctionnent :
| **Indicateur** | **Fonction** |
|———-|——————————–|
| `g` | Remplace **toutes les instances sur une ligne** (sans cela, remplace uniquement la première correspondance). |
| `c` | Demande une confirmation **avant chaque remplacement**. |
| `i` | Ignore la casse (par exemple, remplace “Apple”, “apple”, “APPLE”). |
| `ic` | Combine les indicateurs pour les remplacements insensibles à la casse et confirmés. |
### Exemples concrets que vous utiliserez quotidiennement
####1. **Remplacer la première occurrence sur la ligne courante**
“`vim
:s/old/new/
“`
Cela change la première instance de “old” en “new” sur la ligne active.
####2. **Remplacer toutes les instances sur une ligne (échange global)**
“`vim
:s/old/new/g
“`
L’indicateur `g` indique à Vim de remplacer chaque “old” sur la ligne.
####3. **Remplacer sur plusieurs lignes (tout le fichier)**
“`vim
:%s/old/new/g
“`
Utilisez `%` pour spécifier “toutes les lignes de ce fichier” et `g` pour remplacer toutes les instances.
####4. **Demander une confirmation avant de remplacer — Avec confirmation**
“`vim
:%s/old/new/gc
“`
Ajoutez `c` pour confirmer chaque substitution. Parfait pour des modifications prudentes !
####5. **Remplacement insensible à la casse**
“`vim
:%s/old/NEW/gi
“`
L’indicateur `i` ignore la casse pour la correspondance, de sorte que “Old”, “OLd” ou “old” seront tous remplacés.
####6. **Combinaison d’indicateurs**
“`vim
:%s/foo/FOO/gic
“`
Combinez les indicateurs pour rendre les remplacements globaux (`g`), insensibles à la casse (`i`) et confirmez (`c` chaque changement.
### Techniques avancées : au-delà du remplacement de base
#### Recherche et remplacement dans des lignes sélectionnées (mode visuel)
1. Entrez en **mode ligne visuelle** : appuyez sur `Shift + v`.
2. Naviguez pour sélectionner des lignes (appuyez sur ↓/↑ ou `gg`/`G` pour le haut/bas).
3. Tapez `:s/old/new/gc` pour appliquer des modifications uniquement aux lignes sélectionnées.
#### Mode interactif : parcourir chaque correspondance manuellement
Si vous voulez de la précision plutôt que de la vitesse :
1. Recherchez un terme avec `/foo`.
2. Appuyez sur `n` pour passer à la correspondance suivante.
3. Appuyez sur `cgn` pour remplacer la correspondance actuelle, puis déplacez-vous à nouveau.
### Conseils de sécurité : “Annuler” lorsque les choses tournent mal
– Si vous faites une erreur : appuyez sur **`u`** pour annuler les modifications **ligne par ligne**.
– Pour annuler une commande en cours de saisie : appuyez sur `Esc`, puis `:q!` pour quitter sans enregistrer.
### Meilleures pratiques pour des remplacements sûrs
1. **Testez petit avant de faire grand** :
Commencez par un petit exemple : `:10,20s/foo/bar` pour essayer des modifications sur un extrait avant tout le fichier.
2. **Sauvegardez d’abord !** :
Enregistrez toujours avant de procéder à de grandes substitutions :
“`bash
:w backup_filename.txt
“`
De cette façon, vous pouvez toujours revenir.
3. **Utilisez `c` pour les confirmations** :
Ajoutez `c` (par exemple, `:%s/old/new/gc`) pour approuver manuellement chaque substitution.
4. **Échappez les caractères spéciaux** :
Les mots avec des symboles (par exemple, `*` ou `.`) doivent être échappés. Utilisez un antislash, comme `.` ou `*`.
### Bonus : jokers, modèles et cas spéciaux
– **Remplacez une correspondance de mot entier** :
Entourez les termes avec “ pour correspondre à des mots entiers (par exemple, `s//banana/>`).
– **Remplacez en utilisant des jokers** :
Utilisez `.+` ou des modèles gourmands pour des modèles. Par exemple :
“`vim
:%s/Version d+.// (supprime un numéro de version comme “v.1.2” → “Version1.2”.)
“`
(Remarque : explorez le tableau de référence rapide des expressions régulières de Vim pour des modèles avancés.)
### Le pouvoir est à vous !
Avec la recherche et le remplacement de Vim maîtrisés, vous pouvez éditer efficacement :
– Corrigez des fautes de frappe à grande échelle dans du code ou des fichiers de configuration.
– Renommez des éléments en bloc sans cliquer sans fin.
– Travaillez plus intelligemment, pas plus dur, avec les superpuissances de la ligne de commande de Vim.
Expérimentez, pratiquez et laissez l’éditeur faire le gros du travail. Bon codage !
### Récapitulatif des commandes clés
| Commande | Résultat |
|—————-|————————————-|
| `:s/old/new/` | Remplace la première correspondance sur la ligne courante. |
| `:.,$s/…` | Remplace de la ligne courante à la fin du fichier. |
| `/%s/…` | Remplace toutes les instances dans tout le fichier. |
| `c` | Invite à confirmer. |
**Attention :** Vérifiez toujours deux fois votre indicateur `g` et la combinaison d’indicateurs. Un `g` manquant ne remplace que la première instance par ligne !
Maintenant, sortez et remplacez les flux de travail inefficaces par la vitesse de Vim !
163 total views, 1 today