Mam w moim vimrc:
func! AddSpaceBeforeEqual()
s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge
endfunc
Używam vint, aby pobrudzić mój vimrc i otrzymałem następujące ostrzeżenie:
ProhibitCommandWithUnintendedSideEffect Unikaj poleceń z niezamierzonymi skutkami ubocznymi. Unikaj używania: s [ubstitute], ponieważ przesuwa on kursor i drukuje komunikaty o błędach. Preferuj funkcje (takie jak search ()) lepiej dostosowane do skryptów. Dla wielu poleceń vima istnieją funkcje, które robią to samo z mniejszą liczbą efektów ubocznych. Zobacz: funkcje pomocy (), aby uzyskać listę wbudowanych funkcji. Przewodnik po stylu Google Vimscript
Jednak nie sądzę, że są one sposobem na wykonanie podstawienia bez użycia :s
polecenia.
Na przykład search()
funkcja podaje linie pasujące do wzorca, ale nie ma możliwości wykonania podstawienia. substitute()
Funkcja działa na sznurku, a nie zastępować na całego pliku.
Czy powinienem samodzielnie wdrożyć metodę zastępczą, czy jest to mądrzejszy sposób na przepisanie mojej funkcji?
:help function-search-undo