Eu tenho o seguinte no meu vimrc:
func! AddSpaceBeforeEqual()
s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge
endfunc
Estou usando o vint para lint meu vimrc e recebi o seguinte aviso:
ProhibitCommandWithUnintendedSideEffect Evite comandos com efeitos colaterais indesejados. Evite usar: s [ubstitute] enquanto move o cursor e imprime mensagens de erro. Preferir funções (como search ()) mais adequadas para scripts. Para muitos comandos do vim, existem funções que fazem a mesma coisa com menos efeitos colaterais. Consulte: funções de ajuda () para obter uma lista das funções internas. Guia de estilo do Google Vimscript
No entanto, não acho que eles sejam uma maneira de fazer a substituição sem usar o :s
comando
Por exemplo, a search()
função fornece as linhas correspondentes a um padrão, mas não há como fazer a substituição. A substitute()
função opera em uma string e não substitui um arquivo inteiro.
Devo implementar um método substituto sozinho ou eles são uma maneira mais inteligente de reescrever minha função?
:help function-search-undo