VIM替换字符ſ(U+017F)时误匹配s+任意字符的问题求助
替换古德语文本中的'ſ'字符时出现异常的问题
我在清理包含字符'ſ'(U+017F)的古德语文本,想要将其替换为's'。但执行命令:s/%s/ſ/s/g时,不仅目标字符被替换,所有s后跟任意字符的内容也被替换,效果就像执行了:s/%s/s./s/g命令。
示例原文:
Die Gleichheit **) fordert das Nachdenken heraus durch Fragen, die ſich daran knüpfen und nicht ganz leicht zu beantworten ſind.
执行命令后变为:
Die Gleichheit **) fordert dasNachdenken herausdurch Fragen, die sich daran knüpfen und nicht ganz leicht zu beantworten sind.
我猜测这可能与'ſ'在UTF-8中以双字节序列0xC5 0xBF表示有关。这是VIM的Bug吗?若不是,如何仅替换'ſ'而不影响普通的's'?
我的环境配置为fileencoding=utf-8,VIM版本信息如下:
> vim --version VIM - Vi IMproved 9.1 (2024 Jan 02) Included patches: 1-151 > echo $LANG de_DE.UTF-8
开启:set hlsearch后,搜索高亮显示匹配范围包含了s后续的字符。
更新:在Windows10的VIM 8.0(补丁至586)中,使用原命令及\%u格式命令均出现相同问题。
内容的提问来源于stack exchange,提问作者diffset
相关产品推荐
相关产品推荐

