Vimscriptでデリゲートを使用したり、関数を引数として渡すことはできますか?
私はvimscriptを学習するための小さなプラグインを作成しようとしています。私の目標は、選択したテキストを処理し、それを結果に置き換える関数をいくつか作成することです。スクリプトには次の項目が含まれています。 テキストを処理する2つの関数:パラメーターとして文字列を取り、元のテキストを置き換えるために使用する文字列を返します。現時点では2つしかありませんが、しばらくするとさらに増える可能性があります。 選択されたテキストを取得する関数:これは、最後の選択をヤンクしてそれを返すだけです。 ラッパー関数:処理関数を呼び出し、その結果を取得し、古い選択をこの結果に置き換えます。 今のところ、ラッパー関数は次のようになります。 function! Wrapper() " Get the string to insert let @x = Type1ProcessString(GetSelectedText()) " remove the old selection normal gvd " insert the new string normal "xp endfunction そして、3行目を次のように置き換える2番目のラッパーを作成する必要があります。 let @x = Type2ProcessString(GetSelectedText()) ラッパー関数に、実行し、3行目でジェネリックコールを使用するためのProcess関数を含むパラメーターを与えたいのですが、今のところcall、たとえば次のようなさまざまな方法を試してみました。 let @x = call('a:functionToExecute', GetSelectedText()) しかし、私は本当に成功し:h callていませんし、デリゲートトピックについてはあまり役に立ちませんでした。 ここでそれを要約すると、私の質問です: すべての処理用のラッパー関数を1つだけ作成するにはどうすればよいですか? vimscriptでデリゲートとして機能するものはありますか? デリゲートが存在しない場合、私がやりたいことを行う「良い」方法は何でしょうか?