C6.24.2Silent auto-formatting of typed text设计研究
自动格式化会在用户未察觉时改变已输入内容
别名: 智能引号 · 自动替换格式 · 静默改写
概念解释
系统或编辑器会把直引号换成弯引号、把 -- 换成破折号、把三个点换成省略号、把 (c) 换成版权符,有时还自动加链接或清单标记。这些是自动格式化,发生在字符已经键入之后,往往没有单独的确认。用户盯着键盘或思考下一句时,缓冲区里的字节已经变了。它不依赖“你是不是拼错了”,即使每个字母都按对,文本仍可能被改写。
机制
替换通常由一段正在输入的模式触发:两个连字符、一对引号、Markdown 的起始星号。触发时插入点附近的已有字符被删除并换成新码点。视觉上若新字形与旧字形相近(直引号与弯引号),变化很难进入注意。复制到纯文本、终端或代码仓库时,弯引号和不断行空格会变成语法错误,用户会以为自己打错了。自动纠错替换的是词典条目;自动格式化替换的是标点与空白的码点,词典帮不上忙,撤销栈若把这次替换与打字并成一步,更难拆开。
怎么研究
让人输入含直引号、双连字符、三个点的短串,分别在“看见屏幕”和“看键盘不看屏幕”条件下做,然后把结果粘贴到等宽纯文本里对照码点。记录有没有察觉、察觉后能否指出哪一处被改。材料要包含代码和散文两类。只看最终“好不好看”会把静默改写评成优点。
边界
面向出版的写作工具里,弯引号是预期产物,静默改写可能被当成功能。纯文本、配置、搜索框、命令面板不应做这类替换。即时通讯把 URL 自动加链接,若用户正在编辑 URL 中间,格式化会抢走选择。协作文档里一个人的自动格式化会变成另一人的“谁改了我的引号”。
怎么落地
- 代码、终端、搜索、标识符字段关闭智能标点和空格替换。
- 散文编辑器若开启,把替换做成独立的、可在输入过程中看到的变换(短暂高亮新字符)。
- 粘贴到外部前提供“纯文本”副本,避免弯引号流出。
- 验证:输入
--、"..."和三个点,立即在十六进制或等宽字体下检查码点是否仍是用户按下的那些;再问被试有没有看到变化。