目前,我有一个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/