0

我想用“é”搜索并替换“< e9 >”。

:%s/< e9 >/é/g

不起作用,但 < e9 > 似乎 vim 特殊字符

/ ctrl+v xe9

只找到正确的“é”而不是“< e9 >”

如果我在 < e9 > 上并且我输入 :ascii 我得到了这个结果:

<é> 233,六进制 00e9,八进制 351

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

<é> 233,六进制 00e9,八进制 351

4

2 回答 2

4

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

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

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

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

:set encoding? fileencodings? fileencoding?

并且正确。

于 2013-03-28T07:37:06.227 回答
0

AFAIK<e9>是一个因编码转换而损坏的单个字符。

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

%s//é/g
于 2013-03-28T07:38:05.340 回答