为什么这个命令适用于 shell,而不适用于 vim?

时间:2021-04-22 14:01:58

标签: awk vim

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

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

或者用管子

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

但是在 vim(我需要它的地方!),我用“visual” lshift+v 选择我的 56 行,我把这个

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

而不是插入空行返回给我这个错误

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

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

1 个答案:

答案 0 :(得分:1)

我找到了一个使用 sed 的解决方案/解决方法,每两行插入一个空行

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