copyq中使用python命令示例(examples of copyq calling python scripts)
copyq是强大的剪贴板工具,windows/mac/linux均有客户端。 https://hluk.github.io/CopyQ/
它不只是剪贴板工具,因为可以执行各类脚本,完全可以将它作为脚本箱使用,大大方便各类工作。
官方文档讲的语焉不详,多次尝试后,本文将讲明如何正确调用Python命令完成各种骚操作。
下面,在实践中学习。
生成一个随机字符串并插入到剪贴板
本示例讲述如何调用一个python文件 假设rnd.py可以输出一个随机字符串,比如这样
代码语言:javascript复制import string
import random
length_of_string = 32
print(''.join(random.choice(string.ascii_letters string.digits)
for _ in range(length_of_string)), end='')
在copyq中,按f6,打开命令面板,新建一个随机数
命令,然后选一个有意思的图标
点开右下的显示高级
,然后在命令
中输入下面的命令,便可调用Python脚本,使用|
,可以将输出传递到下一条命令,让copyq调用input
获取输入流,add
,添加新的条目
python "D:\workspace\personal\py_test\tools\rnd.py"|copyq add(input())
效果
此时,呼出copyq主界面,点按预设的图标,就能看到一个随机字符串被插入到最上层
将timestamp转换为时间,并添加为该条目的tag
本示例讲述如何取到当前的选项
,并动态传给Python脚本。
类似上个例子,在command界面,添加命令如下,不过这次选择直接调用脚本,而不是调用文件。
copyq print会将%1
也就是当前选择项传递给python脚本。
copyq print %|python -c '
import sys
import time
try:
origin = sys.stdin.read()
if len(origin) == 13:
origin = origin[:10]
time_array = time.localtime(int(origin))
style_time = time.strftime(str("%Y-%m-%d %H:%M:%S"), time_array)
if style_time:
print(style_time)
else:
print("empty")
except:
print("error")'|copyq:
var time = dateString('yyyy-MM-dd hh:mm:ss')
var tagsMime = 'application/x-copyq-tags'
var tags = str(data(tagsMime)) ', ' input()
setData(tagsMime, tags)
注意,可以使用copyq:
的简写方法,写大量的代码。然后使用|
将上一步的输出导入。
效果
点选时间戳命令后,这条记录被添加了转换后的时间字符串tag,如果是非法的时间戳,则会添加error tag
其它脚本
插入当前时间
command:
代码语言:javascript复制copyq:
var time = dateString('yyyy-MM-dd hh:mm:ss')
add(time)
trim字符串
command:
代码语言:javascript复制copyq print %|python -c '
import sys
print(sys.stdin.read().strip(),end="")'|copyq:
add(input())