mapの代わりにforを内部で使った関数でリスト処理を作ってみます。
書いてみます。
いつも使ってる1~10の数列をバッファに書いておきます。
:0r!wsl seq 10
リストの各要素に3を掛ける処理を行う関数を作ります。
引数の変数にアクセスには、a:を付けます。
:function Times3(mylist) : let b=[] : for m in a:mylist : call add(b,m * 3) : endfor : return b :endfunction
関数が作成できたので、バッファ上の数値を変数aに取り込んで、リスト処理してみます。
:let a = getline("w0","w$") :let result = Times3(a) :call setline("w0w$",result)
各行が3倍になってますね。一番下の行は空行なので結果は0です。
コメント