C6.24.3Disabling auto-format for names and code设计研究
专有名词、代码片段等场景中自动格式化经常适得其反,需要可关闭
别名: 关闭自动格式 · camelCase · 品牌大小写
概念解释
品牌名(iPhone、eBay)、人名中的小品词、编程标识符(getID、file_v2)依赖精确的大小写和标点。自动大写和智能标点会把它们改成“更像句子”的样子,于是专名和代码在这些字段里经常被破坏。这类字段需要可关闭的格式化,而且默认就应关掉,而不是让用户在系统设置深处找总开关。这里关掉的是大小写与标点规则,不是词典纠错——纠错关的是换词,格式开关关的是改形。
机制
专名的大小写是词汇身份的一部分:iPhone 和 Iphone 在搜索、许可证校验、API 里可能被当成不同字符串。代码对引号类型、连字符与破折号、空格种类同样敏感。自动格式化按“书面语美观”优化,目标函数和这些字符串相反。系统级总开关解决不了按字段的语义:同一块键盘,聊天气泡里要弯引号,下面紧挨着的代码块不要。如果关闭入口只存在于操作系统设置,应用字段无法单独豁免,用户只能忍受或整机关掉,伤害散文场景。
怎么研究
建立一份故意“不规则大小写”的专名和标识符清单,在默认格式化开/关的字段里输入,记录被改写的比例和发现延迟。把应用内逐字段开关与系统总开关分开测:有逐字段开关时,散文区是否仍保持格式化。不要用拼写错误材料,以免和自动纠错实验搅在一起。
边界
通讯录如果有“按语言规则显示人名”的层,存储层仍应保留用户敲入的大小写,显示层再格式化。Markdown 预览把星号变成粗体是渲染,不是改缓冲区;两者要分开。用户主动使用的代码片段展开(缩写词条)是明确命令,不算静默格式化,但仍应可编辑。法律文书模板需要固定引号风格时,应用可以强制格式,但必须在界面上标明,而不是躲在键盘里。
怎么落地
- 用户名、品牌、代码、查询参数、正则字段默认关闭自动大写和智能标点。
- 关闭控件放在字段附近或键盘附件栏,不要只指向系统设置。
- 从聊天切换到代码块时自动切换这些规则,切回来再恢复。
- 验证:输入
iPhone、eBay、getID、it's(代码里要直引号),确认标识符字段字节不变;同时确认相邻的散文字段仍能句首大写。