4

我有几个文档,我想有选择地搜索和替换一些非 ASCII 字符(即替换ÀÀ)。我在我的 _vimrc 中创建了一个函数,以便我可以为任何文档调用它,但它给了我一个“找不到模式”错误。但是目标文档中的简单搜索和替换工作正常 - 它按预期查找和替换字符。

我怎样才能让这个功能像正常的搜索和替换一样工作?

(我在 Windows 上使用 gvim,所有文档都是 utf-8 编码的 unix 文件类型。)

这是 _vimrc 中的函数

function! Hc()
    execute '%s/À/\À/g'
endfunction

当我:call Hc()在目标文档中时,这给了我以下错误:

Error detected while processing function Hc:
line   1:
E486: Pattern not found: À

但似乎我可以在目标文档中成功执行此操作:

:%s/À/\À/g

有任何建议、更正或解决方法吗?

4

1 回答 1

1

这看起来像您的~/.vimrc. 如果您使用非 ASCII 字符,请务必指定文件的编码

:scriptencoding utf-8

在文件的顶部,并且仅在此行之后定义自定义:

:set encoding=utf-8

替代解决方法

\%d您还可以使用、\%x\%u原子之一来解决编码问题,例如

:execute '%s/\%d192/\À/g'    " À is decimal 192 in UTF-8.
于 2013-11-11T13:24:16.953 回答