如何用vim中的é替换<e9> </e9>

时间:2013-03-28 07:18:41

标签: search vim utf-8 ansi

我想搜索并替换“&lt; e9 &gt;”通过“é”。

  

:%S /&LT; E9 &GT; / E / G

不起作用,但&lt; e9 &gt;似乎是vim特殊字符

  

/ ctrl + v xe9

只找到正确的“é”而不是“&lt; e9 &gt;”

如果我在&lt; e9 &gt;我输入:ascii我得到了这个结果:

  

&LT e取代; 233,Hexa 00e9,Octal 351

如果我在“é”上并输入:ascii我得到了这个结果:

  

&LT e取代; 233,Hexa 00e9,Octal 351

2 个答案:

答案 0 :(得分:4)

您的文本已经包含正确的é字符(如:ascii命令所示),只是Vim不会像那样显示它。 (您可以使用其他文本列表/编辑器进行验证。)

字符的显示方式由'isprint'选项控制。它的帮助说:

  

当'encoding'是Unicode时,非法字节从128到255     显示为<xx>,带有字节的十六进制值。

因此,假设您没有更改'isprint'值,您可能会遇到检测编码的问题。检查

:set encoding? fileencodings? fileencoding?

并纠正。

答案 1 :(得分:0)

AFAIK <e9>是一个单独的字符,在某种程度上会因编码转换而损坏。

在命令模式下,当光标位于<e9>时,请输入命令yl。这会将角色拉到缓冲区。然后通过提供命令/<C-R>-来搜索被拉出的角色(这涉及进入搜索模式,按CTRL+R并按-。)您的搜索应找到所有<e9>字符文本。最后使用最后一个搜索结果进行替换:

%s//é/g