前回リストを平坦にする関数を作りましたが、中でextendやってるだけなので、関数にする必要はないですね。
自作関数使わず、直接mapでextendを使ってみます。
:let in_list=[[1,2],[3,4],[5,6]] :let out=[] :call map(g:in_list,'extend(g:out,v:val)')
ずいぶんすっきりしました。
これでもいけるはず。
:echo out
ぜんぜん大丈夫ですね。
では、バッファに適当なテキストを作って、それをリストに変換してみます。
:0r!wsl seq 100 | wsl pr -t5J
テキスト取り込み。
:let in=getline("w0","w$") :call map(in,'split(v:val,"\t")') :let out=[] :call map(in,'extend(g:out,v:val)')
outリストに平坦なデータが格納されました。
:echo out
コメント