`:function FunctionName`のエコーコードの内容を現在のファイルにリダイレクトする方法は?

`:function FunctionName`のエコーコードの内容を現在のファイルにリダイレクトする方法は?

これを使ってファイルに変数値を入れる方法を学びました。スタックオーバーフローリンク。

例: L = [1,2,3] :put string(L)

[1, 2, 3]

上記のリンクに記載されているメソッドは、式の戻り値を処理するようです。
しかし、コマンドがエコーする内容をどのようにキャプチャしますかecho?私はこれがfunction FunctionName関数の内容を画面に反映する方法だと思います。
私のvimインターフェイスにエコーが表示されるように、レジスタや他の種類のバッファに移動しませんか?
これらのエコーコンテンツをキャプチャしてvimのファイルにリダイレクトできますか?

答え1

独自のソリューション:

:function Echo_to_file(expr_str)
:    redir => zen_temp | exe a:expr_str | redir END | put=zen_temp
:endfunction


:call Echo_to_file("function Echo_to_file")

   function Echo_to_file(expr_str)
1      redir => zen_temp | exe a:expr_str | redir END | put=zen_temp
   endfunction

1うまくいきますが、なぜ結果が奇妙なのかわかりません。

関連情報