关于VIM的UTF 8:在vim搜索和替换中,换行符呈现为“^ @”

In vim search and replace, newline is rendering as “^@”

本问题已经有最佳答案,请猛点这里访问。

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

[email protected], ,[email protected], , , , [email protected]

在vim中,当我试图用这个命令用新行添加单独的每个地址时:

1
2
:%s/, /,
/g

我没有在逗号后添加新行,而是得到"^@"。

我知道这与字符集有关,但我不知道如何修复它。


:s的替换字段中,换行符需要使用
而不是

^@是ASCII空字符。vim在内部将
用于换行符(即^m),并将用于ASCII NULL,因此在替换过程中,如果使用,则会得到这些空字符而不是换行符。另请参见:H Sub Replace Special