シンプルな vim スクリプト関数を作成しようとしていますが、問題が発生しています。この関数は、2 つの入力文字列を取得して検索を実行し、それらのすべてのインスタンスを置換する必要があります。私は今、次のものを持っています:
function! FindAndReplaceAll(from, to)
echo a:from
:%s/a:from/a:to/gc
endfunction
私がする時:
:call FindAndReplaceAll("test", "test2")
echo a:from は正しく機能しますが、:%s... は from および to リテラルに作用しています。vim構文のハイライトがそれらを変数として強調表示していないことに気付いたので、基本的な構文の問題があるようです。
私の質問は次のとおりです。
- これで正しい構文は何ですか? 答えだけでなく、理由の説明をいただければ幸いです。上記が間違っているのはなぜですか?
とにかく、これを次のように呼び出すことができるようにします
:call FindAndReplaceAll(test, test2)
だから私は引用符を追加する必要はありません...