Tengo lo siguiente en mi vimrc:
func! AddSpaceBeforeEqual()
s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge
endfunc
Estoy usando vint para unir mi vimrc, y recibí la siguiente advertencia:
ProhibitCommandWithUnintendedSideEffect Evita los comandos con efectos secundarios no deseados. Evite usar: s [ubstitute] ya que mueve el cursor e imprime mensajes de error. Prefiere funciones (como search ()) más adecuadas para scripts. Para muchos comandos vim, existen funciones que hacen lo mismo con menos efectos secundarios. Consulte: funciones de ayuda () para obtener una lista de las funciones integradas. Guía de estilo de Google Vimscript
Sin embargo, no creo que sean una forma de hacer la sustitución sin usar el :s
comando.
Por ejemplo, la search()
función proporciona las líneas que coinciden con un patrón, pero no hay forma de hacer una sustitución. La substitute()
función opera en una cadena y no sustituye a un archivo completo.
¿Debo implementar un método sustituto yo mismo o es una forma más inteligente de reescribir mi función?
:help function-search-undo