有没有这么一款剪切版软件?

304 天前
 KlNon

有没有这样的 Windows 软件:
根据复制的内容比如 1,2,3,4,5,6,7,8,9
第一次按 Ctrl+V 会复制 1
第二次会复制 2,
......
第九次会复制 9

1397 次点击
所在节点    问与答
14 条回复
TrembleBeforeMe
304 天前
听起来像 emacs 里的 kill-ring
zhf883680
304 天前
有这么一款 ditto
如果你复制了 1 2 3 4 5 6 7 8
你可以自己设置快捷键 然后随意粘贴 1 2 3 4 5 6 7 8 顺序随意
geelaw
304 天前
如果是读取剪贴板数据的软件实现,当然没有问题,第一次按 Ctrl+V 之后,软件读到 1,2,3,4,5,6,7,8,9 ,然后记住目前在输出列表,如此这般,这般那般,皆大欢喜。

如果是放置剪贴板数据的软件这样做,则 Windows 上不存在可靠的方法实现这个需求。

Windows 的剪贴板数据流是这样的:

1. 程序 A 打开剪贴板并清空之,此时剪贴板的所有者是 A 。如果剪贴板曾经有所有者 C ,则 C 被告知它已经不是所有者。
2. A 在剪贴板上放置各种数据,并标记一些格式延迟渲染。
3. A 关闭剪贴板。

4. 程序 B 打开剪贴板并查询支持的格式。
5. B 选择一些格式获取数据。
6. 如果获取的数据是非延迟渲染,则 A 被告知需要渲染某格式,此时 A 把数据放入剪贴板。
7. B 关闭剪贴板。

这一段表明,若剪贴板上某个格式(例如字符串)已经有数据(非延迟渲染,或延迟渲染且已经渲染过),则再次读取那一格式的时候 A 不会知道,也就是某个格式的数据一旦放入剪贴板,A 就不会在有机会考虑修改它了。

一种思路是这样的:A 设置字符串是延迟渲染,并且在第一次被要求渲染的时候放入 1 ,然后在 B 读完之后重设为延迟渲染(下次放入 2 ),或者放入 2 。

这样做不可靠有理论原因和实际原因,理论原因是 A 不可能知道 B 什么时候读取完毕,实际原因是 B 读取一次不代表用户粘贴一次,比如各种 Office 程序,当鼠标悬停在“粘贴”上的时候就会读取一次剪贴板显示预览,但用户不一定要真的粘贴,A 自然无从判断 B 读取之后是否应该“前进”。
yanhuijun1996
304 天前
我想你在找 ditto
Thatscode99
304 天前
有没有能保存复制的程序文件?
kulous
304 天前
一键复制一键粘贴已经帮了我很大忙
neochen13
304 天前
其实你要的是“粘贴队列”,想要实现的是先进先出……MacOS 上倒是有,windows 不熟悉额
1423
304 天前
这应该是个 AB 问题
不如说说你到底想干啥
jifengg
303 天前
楼主。要不你按一下 Win+V 看看是不是你要的功能
r3a1ex0n0
303 天前
@geelaw hook 接管快捷键自己实现不就行了?
geelaw
303 天前
@r3a1ex0n0 #10 可以,但是这样做就必须用 Ctrl+V 访问粘贴功能,然而用户可以选择用鼠标、用 Shift+Ins 粘贴。我选择采用 psychic debugging 之“揣摩出题人的意图”。
iX8NEGGn
303 天前
CopyQ 脚本全能,就是官方文档不太好上手,它把操作软件的 api 和操作文本的 api 混在一起,作为一款剪贴板软件,多数用户优先关心应该是文本相关 api ,花了我好几天才把它的文档给分类好。
KlNon
302 天前
@1423 #8 平时有的时候打开窗口一个个复制太麻烦了,于是突发奇想想找个类似的软件
KlNon
302 天前
@jifengg #9 好东西,没想到还有这样的快捷键

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1006879

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX