vim,append(),改行コードがおかしくなる

再現コード

call
append(0,"hoge\nhage\n")

上記コードを実行すると、バッファに"hoge^@hage^@"が挿入される。
\nのかわりに\rでも\r\nでも\n\rでもだめ。^Mとか^@ばかり。
セーブしたファイルを見ると改行コードの前にヌル文字が入っており、意味不明。

対策

行を分割した配列を渡す場合はうまくいく。
split()の第二引数に""を渡すとうまいこと行ごとに区切ってくれる。
第三引数は空行省略抑止。

call
append(0,split("hoge\nhoge\n","",1))