常用Popclip工具

1,253 阅读4分钟

I. PopClip工具

PopClip是mac上的一个工具集,最大的特点就是扩展,复制一段文本,然后根据你的需求写插件,把赋值的文本作为输出,做一些你想干的事

基于PopClip,也写了一些小工具,主要是php写的,写插件的教程还是比较简单的,一个配置文件Config.plist和一个脚本文件xxx.php即可

1. 实现一个插件流程

以JSON格式序列化为demo进行演示,如何从0到1创建一个popclip插件,先看一下最终的成品

img

一个插件的文件比较简单,主要有两个

  • Config.plist
  • 具体的脚本文件

a. 配置文件

下面是一个实际的配置,里面指定了两个脚本:

  • 第一个是 json2str.php,这个脚本实现将json转换为单行字符串,在插件上显示的名字就是 JsonStr, 采用的php编写实现
  • 第二个是 str2json.php

需要注意的是里面正则规则,这个主要是用来表示当你划中一段文本之后,是否会出现这个插件的规则(比如时间戳和日期的相互转换,只有选中纯数字时,才支持时间戳转日期)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Actions</key>
    <array>
        <dict>
            <key>After</key>
            <string>paste-result</string>
            <key>Regular Expression</key>
            <!-- 正则匹配规则,*号表示任意选中的内容都会激活这个插件 -->
            <string>*</string> 
            <key>Script Interpreter</key>
            <string>/usr/bin/php</string>
            <key>Shell Script File</key>
            <!-- 执行具体逻辑的脚本名 -->
            <string>json2str.php</string>
            <key>Title</key>
            <!-- 插件的name -->
            <string>JsonStr</string>
        </dict>
        <dict>
            <key>After</key>
            <string>paste-result</string>
            <key>Regular Expression</key>
            <string>*</string>
            <key>Script Interpreter</key>
            <string>/usr/bin/php</string>
            <key>Shell Script File</key>
            <string>str2json.php</string>
            <key>Title</key>
            <string>StrJson</string>
        </dict>
    </array>
    <key>Extension Description</key>
    <!-- 描述 -->
    <string>remove json space or stringfy json str</string>
    <key>Extension Name</key>
    <string>JSON</string>
    <key>Credits</key>
    <array>
        <dict>
            <key>Link</key>
            <string>mailto:bangzewu@126.com</string>
            <key>Name</key>
            <string>Json序列化</string>
        </dict>
    </array>
    <key>Extension Identifier</key>
    <string>popclip.extension.json-covert</string>
    <key>Required Software Version</key>
    <integer>695</integer>
</dict>
</plist>

b. 脚本文件

这个里面就是写具体的业务逻辑,一般是将粘贴板中的内容作为输入,然后进行一段业务逻辑,然后输出到粘贴板内

如str2json.php

<?php
$input=getenv("POPCLIP_TEXT");
if(empty($input)) {
    echo ''; 
} else {
    $param = json_decode($input);
	echo json_encode($param, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
}

注意第一行,获取输入 $input=getenv("POPCLIP_TEXT");, 不同的脚本有不同的获取方式

输出就比较简单了,传统的输出方法,会重写到粘贴板内 echo 'xxx';

c. 打包

上面完成之后,就是打包安装了,流程如下:

  • 新建一个文件夹,后缀为.popclipext,将.plist和脚本文件拷贝到新的文件夹下
  • 压缩: zip -r xxx.popclipextz xxx.popclipext/
  • 双击上面生成的文件,确认安装即可

说明: 上面新建的文件夹,一定要以.popclipext结尾

2. 我的插件

a. base64编码

作用:实现base64编码解码

源码地址: base64

demo: base64

b. 日期&时间戳

作用:实现日期和时间戳的相互转换

源码地址: date

demo: deom

c. unicode字符转中文

源码 : unicode

d. json格式化

源码: json

e. url编码解码

源码: url


II. 其他

工程地址

所有的插件都可以访问: PopClip

个人博客: Z+|blog

基于hexo + github pages搭建的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛

声明

尽信书则不如,已上内容,纯属一家之言,因本人能力一般,见识有限,如发现bug或者有更好的建议,随时欢迎批评指正

扫描关注

QrCode