You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 05:58:24