Vimスクリプト(extend)(その2)

テキストエディタ(Vimやその他)

前回リストを平坦にする関数を作りましたが、中で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

コメント

タイトルとURLをコピーしました