Normalement, un substitut avec l' c
option me donne deux options: (y) es ou (n) o. Est-il possible de choisir parmi plusieurs options oui numérotées?
Exemple
Fichier
person: Alice
dog: Tobby
person: Bob
Modèle 1 :%s/person:/woman:/c
Modèle 2 :%s/person:/man:/c
Les motifs 1 et 2 ont le même motif de recherche mais des motifs de remplacement différents. Je veux les unifier en un modèle avec l'option d'appuyer sur (1) pour le remplacement 1, (2) pour le remplacement 2 ou (n) pour aucun remplacement.
la source
:%s/person:/\=get(['woman', 'man'], input('Your choice: ') - 1, submatch(0)) . ':'/c
c
commande entraînera la nécessité de deux étapes pour remplacer une chaîne, ce qui, je pense, est inutile.Merci pour tous les votes positifs à ma question d'origine! J'ai maintenant incorporé une
:SubstituteChoices
commande dans mon plugin PatternsOnText , qui fournit une implémentation robuste. L'exemple dans la question serait résolu via:la source