为什么此命令适用于 shell,但不适用于 vim?

Why this command works on shell, but not on vim?

我想每两行插入一个空行。 这个命令在 shell 上是完美的 我可以“直接”使用它

awk 'ORS=NR%1?RS:RS RS'

或用管道

printf "%s\n" {a..z} | awk 'ORS=NR%1?RS:RS RS'

但是在 vim(我需要它的地方!),我 select 使用“视觉”lshift+v 我的 56 行,我把这个

:'<,'>!awk 'ORS=NR%2?RS:RS RS'

而不是插入空行 return 我这个错误

awk: row com.:1: (FILENAME=- FNR=1) fatal: attempt to divide by zero

为什么?我在使用 Slackware,使用 Gawk

我找到了一个使用sed的solution/workaround,每两行插入一个空行

:'<,'>!sed '0~2 s/$/\n/g'