Vim字符搜索替换功能错误

时间:2013-11-11 13:17:37

标签: 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

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

1 个答案:

答案 0 :(得分:1)

这看起来像~/.vimrc中的编码错误。如果使用非ASCII字符,请务必使用

指定文件的编码
:scriptencoding utf-8

位于文件顶部,仅在此行之后定义自定义:

:set encoding=utf-8

替代解决方法

您还可以使用\%d\%x\%u原子之一处理编码问题,例如

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