19

我将一个长谷歌电子表格的粘贴单元格复制到一个 txt 文件中,该文件是一个用逗号分隔的电子邮件地址列表。还有许多“空白”单元格,即用逗号包围的空白区域。所以我可以有以下列表:

bob@aol.com, ,john@aol.com, , , , email@email.com

在 vim 中,当我尝试使用以下命令通过新行添加单独的每个地址时:

:%s/, /,\n/g

我没有在命令后添加新行,而是得到“^@”。

我知道这与字符集有关,但我不知道如何解决。

4

1 回答 1

19

:s的替换字段中,您需要使用\rnot\n换行符。

^@ 是 ASCII 空字符。Vim 在内部使用 \r 表示换行符(即 ^M),使用 \n 表示 ASCII 空字符,因此在替换中,如果使用 \n,您将得到那些空字符而不是换行符。另见:h sub-replace-special

于 2012-07-29T07:46:07.497 回答