Sublime 3查找替换HTML内容为何出现随机大小写错乱问题
大小写异常问题原因
出现该问题的核心是同时开启的两个功能存在逻辑冲突,触发了编辑器查找替换模块的判定bug:
Case Sensitive(区分大小写)的生效逻辑是:匹配目标文本时严格校验大小写,只有和输入的查找串Results/Model大小写完全一致的片段才会被选中替换Preserve case(保留大小写)的生效逻辑是:替换时不会直接使用输入的替换串原文,而是自动参考被匹配到的原文本的大小写格式,动态调整替换串的大小写输出。这个功能原本是为跨大小写同义词替换设计的,比如查找test替换为example时,会自动把原文里句首的Test替换为Example、全大写的TEST替换为EXAMPLE。
两个选项同时开启时,保留大小写功能的大小写映射逻辑会出现错位:它无法正确识别替换串里新增的<b>、</b>标签字符,在把原查找串的大写位置映射到替换串时出现字符偏移,本该对应大写的首字母R、斜杠后首字母M没有被正确标记,反而把大写属性错加到了其他字符位,最终输出了大小写错乱的<b>resulTs/model</b>。
解决方法
执行这类给固定字符串包裹HTML标签的替换操作时,关闭Preserve case(保留大小写)选项,仅保留Case Sensitive(区分大小写)即可,此时替换逻辑会严格使用你输入的<b>Results/Model</b>作为替换内容,不会自动篡改字符大小写。
内容的提问来源于stack exchange,提问作者Katsu
相关产品推荐
相关产品推荐

