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