【117】20周 用 Copied 组合剪贴板历史记录 | 工作日志

Minja
2017年12月19日

用 Copied 组合剪贴板历史记录 | 工作日志

| 本文为付费栏目文章,您已订阅,可阅读全文 |
上一篇关于 Copied 的文章里我曾写道,Copied 自带的 Merge Script(组合脚本)已经够用,所以没有深究它的语法。不过在参与编辑工作之后,我很快发现自己有了新的需求:把剪贴板里的多条记录合并成一段,每句前加上不同前缀。


审稿时,我需要用右边的格式把后台草稿的标题、引言以及链接组合起来,发到群里大家一起审核、讨论。其实工作生活中需要「组合」情景不少,像是群发短信、批量给任务打标签,这些时候我们都希望有个工具可以帮我们把文字片段组合起来。
Merge Script 就是用来解决这种刁钻问题的。本文涉及 Javascript 和 Copied 自己的特殊语法,不过你即使完全看不懂,也可以把我的脚本复制过去,稍作修改直接使用。添加 Merge Script 脚本请前往 Copied Settings-Merge Script


当然,我的目标是能教会你写简单的 Merge Script :D 。

简单入门:逐句组合

回想一下,平时我们是如何粘贴多条记录的?最原始的就是来回复制粘贴,有了剪贴板工具,就可以少几次切换,但仍然得多次粘贴。这带来的典型问题就是在不能换行的 iOS 版微信上,你发给别人的文字呈现黑乎乎一大团。
于是最基础的一个组合需求就出现了:组合几条剪贴板历史记录,每条结尾要换行。这是 Copied Merge Script 在 iPhone 上的效果:


如你所见,组合操作在触摸屏上用起来很惬意,点点、拖拖,就生成了所需格式的文字片段。当然,Mac 版的 Copied也可以用 Merge Script。
小提示:组合的顺序是你点选的顺序,和历史记录在 Copied 里的位置无关。
下面是它的脚本。


这个动作所用脚本可以分为几个简单的部分,而我们真正需要关心的只有黄颜色那三行,它们的作用才是换行。一行一行解读,就是:
  1. 如果这条历史记录(string)不是空的;
  2. 就在它后面接上一个换行符(\n);
  3. (我是一个花括号,有始有终,别忘了加上我)。
同样的,如果你想给每一句加上句号再换行,就用 string = string + "。" + "\n",更多的简单应用可以类推,比如从 Excel 里复制几条数据、组合好再发给领导。
其他部分可以视为 Merge Script 的「模板」,几乎每份 Merge Script 都可以用,绝大多数情况下不用修改它们。粉色部分用以确保你没往里面丢空白的历史记录,绿色的两行就是粘合剂,可以把多条历史记录粘在一起。至于首尾的蓝色部分,你不懂也完全没有关系。

进阶用法:给每句加上不同前缀

回到我编写 Merge Script 的初衷,让我们用上面的脚本,稍加改写,为每句加上不同的前缀。分解一下需求,我要的无非是:
  • 第一句前加上 【标题】
  • 第二句前加上 【引言】
  • 第三句前加上 【链接】
  • 把它们一句一行地组合起来。
给剪贴板历史记录加前缀,想必你已经会了,问题是如何按顺序给每句加不同的前缀。来看看最终的脚本,你会发现新脚本最大的不同只是多了那些红色部分。


其实红色部分相当于一个计数器,插在蓝色区域的那一行 var count = 0 表示从零开始计算,因为接下来红色主体部分还有一行 count = count + 1,也就是说,第一条历史记录会被标为 0 + 1 也就是 1,第二条就是 2,以此类推。
接下来就好办了,序号是 1 的就在前面加 【标题】if 就是拿来判断历史记录序号的,一个 if 后接一个括号包着的条件和一个花括号包起来的动作。
这个 Merge Script 运作起来的效果也不错:


小结

懂点 Javascript 的读者看完文章就能自己折腾了,而且一定能写出比我更简练的代码(为了让没有基础的人也能看懂大意,我的脚本写得很「幼稚」),一知半解的读者也可以直接使用我的脚本。
我折腾 Merge Script 始于工作需求,但是已经在生活中、聊天中广泛使用它了。在微信群里发言时,别人都是连发一长串短句,只有我能整出一份干净的列表,给人的印象就很好。
写完 Merge Script,似乎 Copied 的「折腾价值」已经被挖空了,其实前方有着更多的东西可以探索,URL Schemes、AppleScript 接口,都给我们留下了许多可能性。

上一期
Power+ 第 20 周预告 & 话题讨论 & 福利
下一期
Minute Pocket:为你的稍后读标上阅读时间 | 工具推荐
 
精选评论(0) 我的评论