我有几个文档,我想有选择地搜索和替换一些非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
任何建议,更正或解决方法?
答案 0 :(得分:1)
这看起来像~/.vimrc
中的编码错误。如果使用非ASCII字符,请务必使用
:scriptencoding utf-8
位于文件顶部,仅在此行之后定义自定义:
:set encoding=utf-8
您还可以使用\%d
,\%x
或\%u
原子之一处理编码问题,例如
:execute '%s/\%d192/\À/g' " À is decimal 192 in UTF-8.