Remplacer une chaîne sans changer la casse?


18

En raison d'une bizarrerie dans le langage spécifique au domaine avec lequel je travaille, je suis souvent confronté à la tâche de (sélectivement, non globalement) remplacer termou TERMavec wordou WORD, respectivement.

Cela signifie que je recherche sans tenir compte de la casse termet que je souhaite remplacer cela par word tout en conservant les majuscules / minuscules de l'original termintact .

Depuis la vérification de la toute termpour constante minuscule de majuscules / serait difficile et n'est pas vraiment nécessaire, je me contenterais de majuscules / minuscules de word/ WORDêtre décidé sur la première lettre term.

Comment pourrais-je y parvenir?


2
Remarque sur le "sélectivement" pour ceux qui ne le savent pas: ajoutez simplement cà la fin des instructions de substitution ci-dessous, et Vim vous posera des questions sur chaque match.
DevSolar

Réponses:


16

Le coffret de plugins de Michaels Geddes a tout ce dont vous avez besoin:

:%SubstituteCase/\cterm/word/g

D'autres éléments de syntaxe de :substitutesont également pris en charge.


5
Brillant ... cela accélérera considérablement les choses pour moi. Je remarque également que je ne demande plus " cela peut- il être fait", mais seulement " comment le faire". Il semble que je sois enfin «arrivé» à Vim. :-D
DevSolar

16

Cela peut être manipulé par le :Subvertde l' abolition de plug - in :

Une fois, j'ai eu une application avec un modèle de domaine appelé «installation» qui devait être renommé «bâtiment». Donc, une simple recherche et remplacement, non?

:%s/facility/building/g

Oh, mais les variantes de cas!

:%s/Facility/Building/g
:%s/FACILITY/BUILDING/g

Attendez, le pluriel est plus que "s", nous devons donc l'obtenir aussi!

:%s/facilities/buildings/g
:%s/Facilities/Buildings/g
:%s/FACILITIES/BUILDINGS/g

Abolish.vim vous soutient. Une seule commande pour faire les six, et vous pouvez la répéter avec & aussi!

:%Subvert/facilit{y,ies}/building{,s}/g

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.