请教一个问题,copyQ如何复制文件?

RT,请教一个问题,copyQ如何复制粘贴文件?
snipaste_20230129_211317
复制的文件,都是像这种的路径名称。

换ditto吧,好用。

我也想知道了,搜索了下,好像有介绍,不知道怎么用
https://copyq.readthedocs.io/en/latest/faq.html#how-to-reuse-file-paths-copied-from-a-file-manager

CopyQ 常见问题 之一。

复制下列命令,然后按截图中的步骤添加到 CopyQ 就行。

[Command]
Command="
    var originalFunction = global.clipboardFormatsToSave
    global.clipboardFormatsToSave = function() {
        return originalFunction().concat([
            mimeUriList,
            'x-special/gnome-copied-files',
            'application/x-kde-cutselection',
        ])
    }"
Icon=\xf0c1
IsScript=true
Name=Store File Manager Metadata

最近尝试下了 copyq 感觉挺好用,想实现几个功能

1.同步剪贴板内容按照这里设置了同步标签,并没有同步改标签剪贴板内容

2.剪贴板格式化,比如 我复制了 how are you 执行 Action 自动格式化成首字母大写,并去掉空格 HowAreUou ,我看CopyQ 是支持脚本的,文档看得我一头雾水

有没有深入使用 CopyQ 的文章,求分享

非常感谢,我去试试。

就是 js 语法. 只是有内置的对象 方法 属性.

这个同步我用的 onedrive , 没问题.

会不会是你的标签页名称漏了 &

试试下面这个命令

错误命令
  • 自动命令的内容匹配应改为 ^[a-z ]+$
  • 剪贴板格式的检测应在修改剪贴板之前进行
[Command]
Name=\x77ed\x53e5\x9996\x5b57\x6bcd\x5927\x5199
Match=[a-z ]+
Command="
    copyq:
    function capitalize(text) {
      return text.replace(/(?:^| )[a-z]/g, function (i) {
        return i.toUpperCase();
      });
    }

    var text = str(input());
    var newText = capitalize(text).replace(/ /g, '');

    copy(newText); //\x4fee\x6539\x526a\x8d34\x677f\x5185\x5bb9
    setData(mimeText, newText); //\x4fee\x6539\x65b0\x6761\x76ee
    if (hasClipboardFormat(mimeHtml)) removeData(mimeHtml); //\x907f\x514d\x90e8\x5206\x7a0b\x5e8f\x4f18\x5148\x83b7\x53d6\x672a\x4fee\x6539\x7684 html \x683c\x5f0f"
Input=text/plain
Automatic=true
Icon=\xf0c4

[Command]
Name=\x77ed\x53e5\x9996\x5b57\x6bcd\x5927\x5199
Match=^[a-z ]+$
Command="
    copyq:
    function capitalize(text) {
      return text.replace(/(?:^| )[a-z]/g, function (i) {
        return i.toUpperCase();
      });
    }

    if (hasClipboardFormat(mimeHtml)) removeData(mimeHtml); //\x907f\x514d\x90e8\x5206\x7a0b\x5e8f\x4f18\x5148\x83b7\x53d6\x672a\x4fee\x6539\x7684 html \x683c\x5f0f

    var text = str(input());
    var newText = capitalize(text).replace(/ /g, '');

    copy(newText); //\x4fee\x6539\x526a\x8d34\x677f\x5185\x5bb9
    setData(mimeText, newText); //\x4fee\x6539\x65b0\x6761\x76ee"
Input=text/plain
Automatic=true
Icon=\xf0c4

CopyQ 导出的命令会把中文编码,注释直接看图吧。

CopyQ 有个官方命令仓库,对照着看会好懂一些。

没见过,我遇到问题都是一边翻文档,一边看 Issue 和讨论区的:joy:

我现在也是用软链接到onedrive

New-Item -ItemType Junction -Path "C:\Users\brucm\OneDrive\.config\copyq" -Target "c:\Users\brucm\scoop\persist\copyq\config\copyq"

同步时,经常出现多个标签页

不要用软链接. 直接指定路径


这个使用逻辑是怎样的呢,我不想自动执行,设置了全局快捷键,复制之后按F4就自动转换为首字母大写,然后再按ctrl+v 粘贴?试了没找到方法

还有F5弹出Action 这里面怎么调用自定义命令

@brucmao

我之前写的命令犯了两个错误,现在重新编辑了,如果你有用的话记得更新一下。

换下面这个命令试试。按 F4 自动复制,然后将文本转为首字母大写。

[Command]
Name=\x77ed\x53e5\x9996\x5b57\x6bcd\x5927\x5199(\x5feb\x6377\x952e)
Match=^[a-z ]+$
Command="
    copyq:
    function capitalize(text) {
      return text.replace(/(?:^| )[a-z]/g, function (i) {
        return i.toUpperCase();
      });
    }

    disable() //\x7981\x7528\x526a\x8d34\x677f\x5b58\x50a8\xff0c\x907f\x514d\x5c06\x539f\x526a\x8d34\x677f\x5185\x5bb9\x6dfb\x52a0\x4e3a\x6761\x76ee

    try {
      copy();
    } catch (e) {
      popup('\x590d\x5236\x5931\x8d25', e);
      enable();
      abort();
    }

    enable();

    var text = str(clipboard(mimeText));
    var reg = /^[a-z ]+$/;

    if (!reg.test(text)) {
      notification('.title', '\x77ed\x53e5\x9996\x5b57\x6bcd\x5927\x5199', '.message', '\x6587\x672c\x4e0d\x5339\x914d', '.time', 5000);
      abort();
    }

    var newText = capitalize(text).replace(/ /g, '');

    copy(newText); //\x4fee\x6539\x526a\x8d34\x677f\x5185\x5bb9
    add(newText); //\x6dfb\x52a0\x65b0\x6761\x76ee"
Input=text/plain
IsGlobalShortcut=true
Icon=\xf0c4
GlobalShortcut=f4

为什么用 copyq 复制文件,是想保留记录方便下次粘贴吗?
那不知道复制的这个文件能不能同步,还有如果文件过大,会不会很占内存。

copyq 复制文件,在剪贴板只保留了一个路径,下一次想粘贴时就不能用了,不过开启Store File Manager Metadata 这个之后,剪贴板就会保留一份文件,如果复制了大文件,同时又用了onedrive同步…
我现在是定期清理剪贴板下的大文件

感觉好像用处不大,保存图片记录倒是很方便

可以再写个命令,把文件移到非同步标签页。

[Command]
Name=\x6587\x4ef6\x6807\x7b7e\x9875
Input=text/uri-list
Automatic=true
Remove=true
Icon=\xf03e
Tab=File

上面的命令会把复制到剪贴板的文件移动到 File 标签页。

感谢,完美解决文件复制的问题