我尝试过的事情

我尝试过的事情

当我在笔记本电脑上打开 Vim 并运行正则表达式时,如下所示:

:%s/foo/\n/g

vim 插入 ^@ 而不是换行符。

这个问题从上周开始发生。我运行的是 Ubuntu 18.04.04。我认为问题可能是在 Ubuntu 安装更新后开始的。

我尝试过的事情

编码和文件编码

我尝试将编码和文件编码设置为utf-8,然后设置为latin1,但这没有什么区别。

:郎

:lang 产生“当前语言:”LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=es_ES.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=es_ES.UTF-8;LC_MESSAGES=en_US.UTF- 8;LC_PAPER=es_ES.UTF-8;LC_NAME=es_ES.UTF-8;LC_ADDRESS=es_ES.UTF-8;LC_ TELEPHONE=es_ES.UTF-8;LC_MEASUREMENT=es_ES.UTF-8;LC_IDENTIFICATION=es_ES.UTF-8 ”

如果我用以下命令调用 vim

LC_ALL=C vim foo

那么它没有什么区别,问题仍然出现。

答案1

vim 中的 \n 表示替换并不是换行符,而是 null。

使用 \r 代替。例如

:%s/foo/\r/g

相关内容