J'ai les éléments suivants dans mon vimrc:
func! AddSpaceBeforeEqual()
s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge
endfunc
J'utilise Vint à peluches mon vimrc, et a obtenu l'avertissement suivant:
ProhibitCommandWithUnintendedSideEffect Évitez les commandes avec des effets secondaires involontaires. Évitez d'utiliser: s [ubstitute] car il déplace le curseur et imprime des messages d'erreur. Préférez les fonctions (telles que search ()) mieux adaptées aux scripts. Pour de nombreuses commandes vim, il existe des fonctions qui font la même chose avec moins d'effets secondaires. Voir: fonctions d'aide () pour une liste des fonctions intégrées. Guide de style Google Vimscript
Cependant, je ne pense pas que ce soit un moyen de faire la substitution sans utiliser la :s
commande.
Par exemple, la search()
fonction donne les lignes correspondant à un modèle, mais il n'y a aucun moyen de faire une substitution. La substitute()
fonction fonctionne sur une chaîne et ne se substitue pas à un fichier entier.
Dois-je implémenter une méthode de remplacement moi-même, ou est-ce un moyen plus intelligent de réécrire ma fonction?
:help function-search-undo