3
純粋なvimscriptで置換( `:s`なし)
私は私のvimrcに以下を持っています: func! AddSpaceBeforeEqual() s/\([a-z)_0-9"'\[\]]\)=/\1 =/ge endfunc vimrcのlintにvintを使用していて、次の警告が表示されました。 ProhibitCommandWithUnintendedSideEffect 意図しない副作用のあるコマンドを回避します。:s [ubstitute]を使用すると、カーソルが移動してエラーメッセージが出力されるため、使用しないでください。スクリプトにより適した関数(search()など)を優先します。多くのvimコマンドには、副作用が少なく同じことを行う関数が存在します。組み込み関数のリストについては、:help functions()を参照してください。Google Vimscriptスタイルガイド ただし、:sコマンドを使わずに置換を行う方法だとは思いません。 たとえば、search()関数はパターンに一致する行を提供しますが、置換を行う方法はありません。このsubstitute()関数は文字列を操作し、ファイル全体を置き換えません。 自分で代替メソッドを実装する必要がありますか、それとも私の関数を書き換えるよりスマートな方法ですか?