Vim 字符搜索替换函数错误



我有几个文档,我想有选择地搜索和替换一些非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

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

看起来像是~/.vimrc中的编码错误。如果使用非 ASCII 字符,请确保使用 指定文件的编码

:scriptencoding utf-8

,并且仅在以下行之后定义自定义项:

:set encoding=utf-8

替代解决方法

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

:execute '%s/%d192/À/g'    " À is decimal 192 in UTF-8.

最新更新