同样是写点什么,但根据情境不同,我们想用的工具也完全不同:
不仅如此,在不同的情境下,我们经常使用到的按键和功能也有所不同:
记录灵感时,我们需要的是可以把这些碎片分享到我们写作工具的动作。
写作时,我们需要的全选、复制、剪切、粘贴等功能按键。
会议记录时,我们需要的是能够快速标记项目和工具的按键,以及可以生成 PDF 分享给同时或者客户的动作。
那么问题来了,有没有一款工具不仅可以同时做到这些,而且可以在不同的情境下做到切换自如呢?以前我以为是没有的,而且一般来说,就算有,我们也可以想象这种工具该有多复杂。
但是,在深挖 Drafts 5 的功能之后,我发现,Drafts 不仅实现了这个需求,而且实现得丝毫不影响它原有的简单易用。
在设置完成之后,我们就能用外接键盘的快捷键在多个情境之间无缝切换。来看看效果:
视频的看点有两个:
注意弹出的草稿区,不同情境的草稿是不同的(如果不同情境下草稿都一样就失去意义了,我们总不想看到记录写作灵感的草稿箱里混入一堆会议记录吧)。
注意下方 Drafts 的自定义键盘,它会随着不同的情境,改变不同的配置。
如果是 iPhone 用户,当然也可以不借助外接键盘来实现。我们只需要用到 Drafts 5 的「工作区」这一功能,外加几个动作即可。
首先,何谓工作区?
工作区的本质是一种过滤机制,通过一系列的过滤条件,让你的草稿列表只显示一部分你指定的草稿。
在 Drafts 主界面从左向右滑动(或使用 ⌘Command - 1 快捷键)调出草稿列表,在草稿列表的右上角点击「···(更多)」按钮,我们就调出了工作区列表。
点击工作区列表中「OPTIONS」选项下的「New」按钮,你就新建了一个工作区。在弹出的设置界面中,我们可以看到以下选项:
在这些设置里,「TAG FILTER(标签过滤)」下有一行注释,它的含义是:
匹配含有多个标签的草稿,使用半角逗号 , 来分隔。例,idea,draft。
匹配所有有标签和没标签草稿,则将该栏留空。
匹配所有不含标签的草稿,则输入 untagged 来匹配。
忽略某个标签,则在该标签前加半角叹号 !。例,meeting,!power+。
在「TAG FILTER(标签过滤)」下的「Tag filter mode(过滤模式)」处,我们可以选择标签之间组合的方式:
另外,在这个工作区里新建的草稿都会默认打上匹配条件里存在的所有标签。1
如何用工作区排除工作中的干扰
至此,我们已经对工作区的原理有了大致的了解。下面将以我自己为例来说明我如何用不同工作区来区分不同的使用情境。
我目前常用的工作区主要是三个:Writing(写作)、Tasks(任务)、Default(默认)。
Writing 用于写作
Writing(写作)这个工作区主要有两个用法:
收集素材、直接作文:平时我阅读时,看到任何有价值的东西,都会通过 Share sheet 放入 Drafts,同时打上「素材」的标签。当我有写任何东西的想法时,我会载入这个工作区,翻找已有的素材,列一篇大纲,或者直接在 Drafts 里写出一个简要的版本,有时也会直接完成全文。
收集素材、对照写作:当我准备写一篇更为正式的文章或有配图等要求时,我会用分屏模式同时打开 Ulysses 和 Drafts——在 Drafts 中载入 Writing 这个工作区,对照 Drafts 里的素材和大纲,在 Ulysses 里书写。因为载入 Writing 工作区后,我的草稿列表中就只剩下收集的素材了,非常有利于减少干扰。
这个工作区设置如下:
Tasks 用于任务管理
在开会、或者跟 Hum 修改文章时,我也会快速打开 Drafts 来做记录。
因为 Drafts 支持 Taskpaper 的语法,所以我可以以 @Flag 的形式,为任务打上各种标签。专门为这样的任务型笔记建立一个工作区,则很有助于我们在交流后回顾、整理和分享交流中产生的任务。 Drafts 的 5.3 版本还关联了 Todoist,所以我们现在可以直接把 Drafts 里记下的任务直接发送到 Todoist 去。
因为这个工作区主要是根据 Taskpaper 的语法来记录,为了快捷输入,我为它打造了一组自定义键盘:
通过 TaskPaper 语法发送任务到 Todoist
通过这套键盘我可以快速给任务添加截止日期、标签和重要级别。
最后,这个工作区的设置如下:
Default 用于还原默认工作环境
最后是 Default,正如同它的名字,这个工作区表示「默认」。
它的功能主要就是:方便我使用完其它工作区后,一键切换回那个默认的、显示所有草稿的列表。
因此它不需要任何规则。
如何高效地切换工作区
现在我们已经知道如何配置工作区了。而下一步,就是如何飞速地切换这些工作区。
要注意,切换工作区的时候,我们不仅仅想做到切换工作区。我们还要做到:
切换配套键盘(Writing 工作区需要复制粘贴键、Tasks 工作区需要 Taskpaper 语法键)
切换配套语法(Writing 工作区应该是 Markdown 语法、Tasks 工作区需要 Taskpaper 语法)
切换后新建一条草稿并弹出键盘(因为我马上就要写啊!)
使其支持外接键盘的快捷键
怎么做到切换工作区的同时做到这些呢?接下来就要了解一下 Drafts 的 JavaScript 了。以 Tasks(任务)工作区为例,我们来看看做到这些的代码长什么样(注意,不能直接套用,得结合自己的工作区名来修改):
var workspace = Workspace.find("Tasks");
app.applyWorkspace(workspace);
var group = ActionGroup.find("Tasks");
app.loadKeyboardActionGroup(group);
draft.languageGrammar = "Taskpaper";
editor.new()
editor.activate()
是不是看起来还好,不怎么长,英文单词好像都挺简单的?对,它其实就是很简单!
var workspace = Workspace.find("Tasks");
app.applyWorkspace(workspace)
最开始这个部分,做到的就是把工作区,切换到 Tasks(任务)工作区。接下来:
var group = ActionGroup.find("Tasks");
app.loadKeyboardActionGroup(group);
就是载入名为「Tasks(任务)」的动作组,并且把它设置为自定义键盘。再接下来:
draft.languageGrammar = "Taskpaper";
是把草稿的语法高亮设为 Taskpaper 的语法。最后,用:
editor.new()
editor.activate()
来实现切换后立刻新建一条草稿并且弹出键盘的效果。
有了这些代码,我们只需要制作一个动作,让它运行这些代码,就会同时发生五件事:
工作区变为 Tasks
自定义键盘变为 Tasks 的配套自定义键盘
草稿的高亮语法变为 Taskpaper 的语法
Drafts 会新建一条草稿
弹出键盘
完美达到一键切换的目的。
建立动作的方法也很简单:
在 Drafts 主界面从右向左滑动(或使用 ⌘ + 0 快捷键)调出动作列表
点击右下角的「+」
选择「Add New Action(新建)」
在动作设置界面中,我推荐先为动作设置好名字和识别颜色。之后:
点击「STEPS」下面那栏进入步骤设置界面
点击右上角的「+」添加一个「Script」步骤
点击「Edit」按钮,把根据前面的代码修改好的代码粘上
最后点击右上角「Save & Exit」保存并退出
这个动作就制作完成了。
给这个动作设置好键盘快捷键,我们就能用外接键盘来进行切换。
动作快捷键的设置在动作设置界面中可以找到,如图:
先点选想使用的组合功能键,再在后面的输入框内输入一个键盘上的按键(0–9,A-Z,以及符号键)即可。
注意,快捷键不能与 Drafts 自带的快捷键冲突。
定制属于你的工作组切换器
为了方便大家修改学习,我已经制作好了一个切换器的模版。
这个模版是一整个动作组,其中的动作代码都已经写好,并且动作组中的每一个动作都与 ⌘Command - 2 至 ⌘Command - 9 的组合键绑定,通过按下组合键就可以同时切换工作区和动作组。我自己的切换器目前只使用了 ⌘Command - 2 至 ⌘Command - 6 的组合键,分别为:
⌘Command - 2:切换到 Default 工作区、载入用于文字编辑的 Text&Edit 动作组和 Markdown 高亮语法。在使用完某个工作区后,我会按下这组快捷键载入平时的默认设置。
⌘Command - 3:切换到 Writing 工作区、载入 Text&Edit 动作组和 Markdown 高亮语法。
⌘Command - 4:切换到 Drafts 工作区、载入 Text&Edit 动作组和 Markdown 高亮语法。
⌘Command - 5:切换到 Tasks 工作区、用于快速输入任务细节的 Tasks 动作组和 Taskpaper 高亮语法。
⌘Command - 6:切换到 Default 工作区和用于快速搜索的 Search 动作组。这是比较值得一提的一个组合,因为我设置了 Search 这个动作组不显示在键盘扩展条上,但 app.loadKeyboardActionGroup(group) 这个语句照样能够载入这个动作组并临时显示在键盘扩展条上,直到我滑动切换或者载入新的动作组,这个原先载入的动作组才会消失。
你可以 点击此处 获取这个工作区切换器的模版,只需根据自己的需求自行稍作修改就能使用。每一个动作的代码均为下图的形式: 修改时只需在红框框出的三对引号内按顺序添加:
希望加载的动作组名字
希望加载的工作区名字
希望使用的高亮语法名字。
如无必要,也可以什么也不填,不会影响动作运行。
另外,虽然这个切换器是为使用扩展键盘的设备设计的,但是不使用扩展键盘也可以使用它。只需要在右侧动作列表中点击动作组名字,在弹出的动作组列表点击「Manage」,在菜单中找到「工作区切换器」这个动作组,点击名字后面的键盘图标使其从灰色变成蓝色,就可以在键盘扩展条上找到这个动作组。
最后,我只制作了 ⌘Command - 2 至 ⌘Command - 9 七个动作,如果你认为有必要增加更多,只需继续增加动作,可以使用诸如 ⌥Option - ⌘Command - 1 之类的快捷键。
当然,你也可以基于前文所叙原理,根据自己需求做更深一层的定制,增加更多的功能。It’s up to you.
小结
至此我已经从头到尾地说明了:
如何在 Drafts 中建立工作区
如何高效地切换工作区
以及给大家提供了示例代码和模板动作。
工作区这个功能,可以说是 Drafts 5 的一个 killing feature。它在不牺牲 Drafts 简单易用、即开即写的特性的同时,增加了如此强大的自定义功能,并使之通过快捷键就能切换自如,让我们随时轻松应付各种使用场景。
相关阅读