秋来冬风的博客

复制一段文字粘贴出来却变了样,苹果OS 40多年前带头搞的多格式剪切板坑人设计

目录

背景

我最近遇到一个复制粘贴的问题,部分截图如下

当我试图将网页的内容复制到豆包对话框时,结果发现粘贴后出现的不是笔者选中的,我临时选择了使用js脚本获取innertext来解决当下。

粘贴到豆包,出来的是

type Signed interface { ~ https://pkg.go.dev/builtin#int | ~ https://pkg.go.dev/builtin#int8 | ~ https://pkg.go.dev/builtin#int16 | ~ https://pkg.go.dev/builtin#int32 | ~ https://pkg.go.dev/builtin#int64 }

后续我注意到,粘贴到记事本没有这个情况。

我仔细查资料研究了,发现OS默认的剪切板其实是多格式的,可以选中内容复制的时候,其实可以往剪切板写入选中内容的多个格式,都是同一个item,但是应用可以自己选择其中一种格式的作为粘贴使用的。

这个设计最早来自1984 年的 Macintosh 上,是当时的苹果电脑OS带头搞的,目的是让文本复制时不会丢失加粗等样式。后续各个OS都采用了这种设计。

但这我今天遇到的情况,显然写入剪切板的不是加粗那种样式变化。

问题在于,为什么允许不同的程序读取剪切板item的任意格式,而不是只能读取纯文本等少数无歧义的格式。而且,还不能选择粘贴使用那种格式,也不能选择复制写入几种格式,这现在并不是能乐观的当成用户不需要知道的机制。

评论区

评论加载中

Tags: