Ich habe folgendes in meinem vimrc:
func! AddSpaceBeforeEqual()
s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge
endfunc
Ich benutze vint, um mein vimrc zu fusseln, und habe die folgende Warnung erhalten:
ProhibitCommandWithUnintendedSideEffect Vermeiden Sie Befehle mit unbeabsichtigten Nebenwirkungen. Vermeiden Sie die Verwendung von: s [ubstitute], da dies den Cursor bewegt und Fehlermeldungen druckt. Bevorzugen Sie Funktionen (wie search ()), die besser für Skripte geeignet sind. Für viele vim-Befehle gibt es Funktionen, die dasselbe mit weniger Nebenwirkungen tun. Unter: help functions () finden Sie eine Liste der integrierten Funktionen. Google Vimscript Style Guide
Ich denke jedoch nicht, dass dies eine Möglichkeit ist, die Ersetzung ohne Verwendung des :s
Befehls durchzuführen.
Zum Beispiel gibt die search()
Funktion die Linien an, die einem Muster entsprechen, aber es gibt keine Möglichkeit, eine Substitution durchzuführen. Die substitute()
Funktion arbeitet mit einer Zeichenfolge und ersetzt nicht eine ganze Datei.
Sollte ich selbst eine Ersatzmethode implementieren oder ist dies eine intelligentere Möglichkeit, meine Funktion neu zu schreiben?
:help function-search-undo