【发布时间】:2023-03-12 08:39:01
【问题描述】:
我在这里编辑(macvim)file.c,然后将它同步到服务器。当我在 linux 机器和 vim file.c 中 ssh 时,我注意到了奇怪的字符。在所有 printf 中," 左侧更改为 ?~@~\,右侧更改为 ?~@~]。
printf("text");
显示为
printf(?~@~\text?~@~]);
我试图:替代
:s/\<?~@~\\>/"
但它没有改变,我得到了
E486: Pattern not found: \<?~@~\\>
这种替代方法可能是什么?
【问题讨论】:
-
你能告诉你为什么使用单词边界
\<吗?\\>将被视为反斜杠,>,你需要\\\>来表示反斜杠和单词边界...~也需要出于某种原因转义 -
其实不行,我不知道,我应该试试
s/\<?\~@\~\\\>/"吗? -
不,使用单词边界不适用于给定的示例。尝试
s/?\~@\~\\/" -
同样的事情 E486
-
你的 macvim 有一个插件可以用“智能引号”替换引号。您不能用 sed 用普通引号替换它们,因为没有文字 ? @ 和 ] 字符。只是您的 Linux 端的 vim 无法显示 UTF-8 字符。删除插件,在mac端修复文件。您可能还需要修复您的 Linux 设置,使其能够理解 Unicode。