效率神器:用剪贴板工具copyq打造强大的python脚本箱

2022-11-29 17:28:32 浏览数 (1)

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,添加新的条目

代码语言:javascript复制
python "D:\workspace\personal\py_test\tools\rnd.py"|copyq add(input()) 

效果

此时,呼出copyq主界面,点按预设的图标,就能看到一个随机字符串被插入到最上层

将timestamp转换为时间,并添加为该条目的tag

本示例讲述如何取到当前的选项,并动态传给Python脚本。 类似上个例子,在command界面,添加命令如下,不过这次选择直接调用脚本,而不是调用文件。

copyq print会将%1也就是当前选择项传递给python脚本。

代码语言:javascript复制
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()) 

0 人点赞