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

2024-01-08 17:06:04 +08:00
 KlNon

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

1871 次点击
所在节点    问与答
14 条回复
TrembleBeforeMe
2024-01-08 17:29:37 +08:00
听起来像 emacs 里的 kill-ring
zhf883680
2024-01-08 17:42:10 +08:00
有这么一款 ditto
如果你复制了 1 2 3 4 5 6 7 8
你可以自己设置快捷键 然后随意粘贴 1 2 3 4 5 6 7 8 顺序随意
geelaw
2024-01-08 17:47:39 +08:00
如果是读取剪贴板数据的软件实现,当然没有问题,第一次按 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
2024-01-08 20:37:24 +08:00
我想你在找 ditto
Thatscode99
2024-01-08 20:48:56 +08:00
有没有能保存复制的程序文件?
kulous
2024-01-08 21:00:08 +08:00
一键复制一键粘贴已经帮了我很大忙
neochen13
2024-01-08 23:19:59 +08:00
其实你要的是“粘贴队列”,想要实现的是先进先出……MacOS 上倒是有,windows 不熟悉额
1423
2024-01-08 23:28:30 +08:00
这应该是个 AB 问题
不如说说你到底想干啥
jifengg
2024-01-09 09:27:51 +08:00
楼主。要不你按一下 Win+V 看看是不是你要的功能
r3a1ex0n0
2024-01-09 09:45:41 +08:00
@geelaw hook 接管快捷键自己实现不就行了?
geelaw
2024-01-09 09:51:55 +08:00
@r3a1ex0n0 #10 可以,但是这样做就必须用 Ctrl+V 访问粘贴功能,然而用户可以选择用鼠标、用 Shift+Ins 粘贴。我选择采用 psychic debugging 之“揣摩出题人的意图”。
iX8NEGGn
2024-01-09 12:27:16 +08:00
CopyQ 脚本全能,就是官方文档不太好上手,它把操作软件的 api 和操作文本的 api 混在一起,作为一款剪贴板软件,多数用户优先关心应该是文本相关 api ,花了我好几天才把它的文档给分类好。
KlNon
2024-01-10 09:28:02 +08:00
@1423 #8 平时有的时候打开窗口一个个复制太麻烦了,于是突发奇想想找个类似的软件
KlNon
2024-01-10 09:29:34 +08:00
@jifengg #9 好东西,没想到还有这样的快捷键

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

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

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

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

© 2021 V2EX