由来
上午想在Evernote中对一篇文章的子标题进行加红操作,没有格式刷只能一遍又一遍地选中文字,再打开调色板,选中颜色,关闭调色板,真是无以吐槽。
搜索了一下相关增强Evernote编辑能力的文章,发现了知乎上的一篇分享,以及v2ex上的这个帖子,都是Windows下借助Autohotkey来实现增加Evernote编辑能力的。想起以前在Windows下用Autohotkey那可真是得心应手啊,可惜Mac下没有。
想起了之前用AppleScript来实现一些快捷操作,在Mac下是否能用AppleScript脚本来简化上面繁琐的加红操作呢?
简单看了一下上面的Autohotkey脚本代码,发现只需要把选中文字转换成html格式然后粘贴就行。然而AppleScript并没有像Autohotkey那样简单的SetHTML命令。
突破
几经折腾,终于折腾出了下面的可行代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
原理就是复制选中的文字,加上html颜色的标签,然后变成html格式内容,粘贴即可。
比如选中的文字为“Hello”,上面的代码会先把它变成<span style="color:red;">Hello</span>
,然后在Evernote中粘贴就变成了红色字体的“Hello”
其中的难点在于把html源码变成剪贴板认可的html富文本格式内容,这个借助了shell中的hexdump命令以及用剪贴板作为中介。突破了这个难点之后,你就可以任意自定义html格式了。
Automator自动化
要与Evernote集成,就要借助于Automator工具了。 Automator 是 Mac 自带的神奇小机器人,这次我们就要用它的 Workflow 功能来将脚本绑定到系统快捷键上。 先来设置 Automator,Automator 可以在 Spotlight 里快速启动。
1、菜单里选”新建“,选取文稿类型“服务”;
2、在出来的窗口右侧顶部设置“服务”收到选定的“文本”,位于”Evernote“,不要勾选”用输出内容替换选中文本“
3、在左侧选取“运行AppleScript”,双击或直接拖到右侧区域内;
4、在出现的 AppleScript 编辑窗口里输入代码,之后保存为你喜欢的名字;
5、此时在系统左上角 Automator 的下拉菜单里“服务”一栏就已经有刚才你保存的服务啦!现在点击刚刚保存的服务的名称运行一次看看~~(一定要运行一次哦)
在Automator中的脚本可以更简单:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
保存的位置在/Users/yourusername/Library/Services/
现在开始设置快捷键。
1、点击 Automator 下拉菜单中“服务->服务偏好设置”;
2、在弹出的服务偏好设置窗口右侧,从“通用”中找到刚保存的服务名称,选中该服务,右侧可以看到“添加快捷键”的按钮;
3、点击“添加快捷键”按钮,在键盘上按下需要设置的快捷键。
我给自己自定义的快捷键是cmd+shift+1。以后要在Evernote中对选中的文字进行红色高亮时,按下cmd+shift+1就可以搞定。
是不是很简单? 这样,你就可以自定义一些自己常用的文本格式,绑定快捷键,然后就像Word中的样式表一样,一键就可以更换自己需要的格式。
这只是一个简单的例子,相信实现其它的文本格式也不是难事,权当抛砖引玉,大家应该能做出更高级的功能。
延伸——增强MarkDown编辑能力
写这篇文章时还发现另一个用途:增强MarkDown编辑能力。
众所周知,MarkDown对颜色支持似乎不是很好,如果我要把一段内容变成红色字体,办法只能是写HTML代码,可这依然是一件麻烦的事情。受上面的启发,我们可以写一个AppleScript脚本对选定的文字进行HTML包装,然后自动粘贴。那么只用一个快捷键就可以搞定了。
在Automator中只需要上面一半不到的代码就行了:
1 2 3 4 5 6 7 |
|
下面就是效果了:
同样地,我们可以为了让自己方便写MarkDown而自定义一系列样式,用AppleScript实现,形成自己的MarkDown样式表,让自己的MarkDown文章更容易地玩出更多的花样。
一些额外的发现:
- 将文本转换成完整html源码的AppleScript脚本:
1 2 3 |
|
- 在terminal里用于查看刚刚复制的html内容的html源码的命令:
1
|
|
通过 AppleScript 连接印象笔记
https://dev.yinxiang.com/doc/articles/applescript.php查看Evernote api for AppleScript的方法:
在Evernote的菜单中,选择 “文件 > 打开字典…” 然后在显示的应用列表中选择Evernote。