V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
KlNon
V2EX  ›  问与答

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

  •  
  •   KlNon · 355 天前 · 1452 次点击
    这是一个创建于 355 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    14 条回复    2024-01-10 09:29:34 +08:00
    TrembleBeforeMe
        1
    TrembleBeforeMe  
       355 天前
    听起来像 emacs 里的 kill-ring
    zhf883680
        2
    zhf883680  
       355 天前
    有这么一款 ditto
    如果你复制了 1 2 3 4 5 6 7 8
    你可以自己设置快捷键 然后随意粘贴 1 2 3 4 5 6 7 8 顺序随意
    geelaw
        3
    geelaw  
       355 天前 via iPhone
    如果是读取剪贴板数据的软件实现,当然没有问题,第一次按 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
        4
    yanhuijun1996  
       355 天前 via iPhone
    我想你在找 ditto
    Thatscode99
        5
    Thatscode99  
       355 天前 via iPhone
    有没有能保存复制的程序文件?
    kulous
        6
    kulous  
       355 天前 via Android
    一键复制一键粘贴已经帮了我很大忙
    neochen13
        7
    neochen13  
       355 天前
    其实你要的是“粘贴队列”,想要实现的是先进先出……MacOS 上倒是有,windows 不熟悉额
    1423
        8
    1423  
       355 天前
    这应该是个 AB 问题
    不如说说你到底想干啥
    jifengg
        9
    jifengg  
       354 天前
    楼主。要不你按一下 Win+V 看看是不是你要的功能
    r3a1ex0n0
        10
    r3a1ex0n0  
       354 天前
    @geelaw hook 接管快捷键自己实现不就行了?
    geelaw
        11
    geelaw  
       354 天前
    @r3a1ex0n0 #10 可以,但是这样做就必须用 Ctrl+V 访问粘贴功能,然而用户可以选择用鼠标、用 Shift+Ins 粘贴。我选择采用 psychic debugging 之“揣摩出题人的意图”。
    iX8NEGGn
        12
    iX8NEGGn  
       354 天前 via iPhone
    CopyQ 脚本全能,就是官方文档不太好上手,它把操作软件的 api 和操作文本的 api 混在一起,作为一款剪贴板软件,多数用户优先关心应该是文本相关 api ,花了我好几天才把它的文档给分类好。
    KlNon
        13
    KlNon  
    OP
       353 天前
    @1423 #8 平时有的时候打开窗口一个个复制太麻烦了,于是突发奇想想找个类似的软件
    KlNon
        14
    KlNon  
    OP
       353 天前
    @jifengg #9 好东西,没想到还有这样的快捷键
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   924 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:27 · PVG 05:27 · LAX 13:27 · JFK 16:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.