目前,我有一个C字符串定义为:

std::string str = "printf(\"Hello world\n\")";

最外面的双引号用于此字符串。我们可以看到\对字符串中的双引号进行了转义。

当我使用fprintf()将上述字符串写入文件时,我看到\n被视为换行符,但事实证明\\n将解决此问题。

此文件中有许多文字\n。我在vim中尝试了%s/\n/\\n/g,但即使是真正的“换行符”也会受到影响。

我应该如何在vim中将文字\n替换为\\n而又不影响真正的换行符?

最佳答案

如果要将所有文字\n替换为文字\\n,请使用以下命令:

:%s/\\n/\\\\n/g

也就是说,每个反斜杠必须单独转义。

字符串
std::string str = "printf(\"Hello world\n\")";

将导致
std::string str = "printf(\"Hello world\\n\")";

并且不会替换任何实际的换行符。

关于c++ - 如何使用vim用文字 “\n”替换文字 “\\n”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45529303/

10-09 06:34
查看更多