Vim script でリストの範囲にリストを代入する

Lingr で話が出ていたので覚書。

let list = range(10)
let list[3:6] = [-1, -2, -3, -4]
echo list
" => [0, 1, 2, -1, -2, -3, -4, 7, 8, 9]
" :help E711
                            *E711* *E719*
:let {var-name}[{idx1}:{idx2}] = {expr1}        *E708* *E709* *E710*
            リスト|List|の一部を式{expr}の値で置き換える。{expr}の
            値は正しい個数の要素を持つリストでなければならない。
            {idx1}を省略すると0となる。
            {idx2}を省略するとリストの末尾となる。
            指定された範囲の一部がリストの末尾を越える場合、要素が
            追加される。


知らなかった。