Ho il seguente nel mio vimrc:
func! AddSpaceBeforeEqual()
s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge
endfunc
Sto usando Vint per sfilacciare il mio Vimrc e ho ricevuto il seguente avviso:
ProhibitCommandWithUnintendedSideEffect Evita i comandi con effetti collaterali indesiderati. Evitare di usare: s [ubstitute] mentre sposta il cursore e stampa i messaggi di errore. Preferisci funzioni (come search ()) più adatte agli script. Per molti comandi vim, esistono funzioni che fanno la stessa cosa con meno effetti collaterali. Vedere: help Functions () per un elenco di funzioni integrate. Guida allo stile di Google Vimscript
Tuttavia, non penso che siano un modo per fare la sostituzione senza usare il :s
comando.
Ad esempio, la search()
funzione fornisce le linee corrispondenti a un modello, ma non è possibile effettuare la sostituzione. La substitute()
funzione opera su una stringa e non sostituisce un intero file.
Dovrei implementare un metodo sostitutivo da solo o sono un modo più intelligente di riscrivere la mia funzione?
:help function-search-undo