# 用 Keyboard Maestro 在任何文档中轻松移动文本行

> 本文公开全文。

原文：https://utgd.net/article/20512

任何大纲、清单、列表软件——不管你叫它什么——都有一个让人直呼痛快的功能：移动行（line）。比如在 Taskpaper 里，按下 ‌⌃Control\-⌘Command\-上箭头，就能把一行文本往上移，很适合用来写草稿，随时调整思路。因其轻快方便，甚至有人写任何东西都用大纲。

大纲软件毕竟以行为单位，上下移动并不奇怪；但是同样的事情在普通文本编辑器中却不简单，如果我想把一段文本往上移一段，通常的选择就是全选它，剪切下来，然后在上一行上面空出一行，再把刚刚剪下来的文本粘上去。这一度导致我在大纲软件（先后是 Taskpaper、OmniOutliner 和 Bike）中写草稿，尤其是本来就分好几个板块的会员文章，通常都放在大纲软件中调整顺序。

不过，仔细考察选择和移动文本行的操作后，我用 Keyboard Maestro 中模拟了移动文本行的功能，再遇上只需微调行顺序的情况，就不必切换到专门的大纲软件。

\>\>Keyboard Maestro Macros 下载\<\<

## 使用简介

移动文本行的动作由一对 Macro 组成，一个负责往上移动，一个负责相反方向，使用方法非常简单，几乎任何能够输入文本的地方都可以用：

- 下载安装，启用（Enable）Macro 及其所在的 Group；

- 把光标移到任何一段想要移动的文字上，不用在意具体位置；

- 如果要上移一段，就按快捷键 ‌⌃Control\-⌘Command\-上箭头；

- 如果要下移一段，则按快捷键 ‌⌃Control\-⌘Command\-下箭头，两个快捷键都直接取自 Taskpaper 等常见的大纲软件，以求操作统一。

打草稿的时候，我们可能是先不管三七二十一先写下素材，稍后才调整顺序；一旦有了省力的文本行移动工具，调整素材顺序就像在桌面上摆弄积木，能够轻松不少。

## 思路剖析

细看前面的动图，不难发现，Keyboard Maestro 并不能像真正的大纲软件那样无痕操作，它只是模拟了文章开头所提及的键鼠操作，如果我录下来的是视频而不是动图的话，相信您可以在慢动作中看出端倪。好在模拟键鼠操作也足够快，并不耽误使用。

乍听上去，模拟键鼠操作似乎没有什么技术含量，然而如何不多不少选中一整行文本，却是一个技术活。选中整行有三种思路：

- 借助软件本身，不过既然已经走到 Keyboard Maestro 这一步，就说明这条道走不通了；

- 模拟鼠标点击，和在 iOS 点三下段落一样，在 macOS 上点三下鼠标也能选中当前整段文本，但 Keyboard Maestro 暂时不能识别光标所在的位置，很难精确点击当前的段落；

- 最后一种方法则是全键盘操作。

接下来就要引出两个文本处理快捷键——程序员可能比较熟——正是它们，帮助 Keyboard Maestro 精确选中当前光标所处的整段文字。第一个快捷键是 ‌⌃Control\-A，它表示把光标移动到段落的开头；第二个则是 ‌⇧Shift\-⌃Control\-E，它表示从当前位置一直开始选中文本，一直选到段落末尾。配合起来，刚好就能选中一整段文字，一个不多、一点不少。

这两个快捷键都非常古老，可以追溯到鼠标尚不流行的年代，但至今仍然时常出现。常常写代码的人估计经常用到 ‌⌃Control\-A——及其姊妹快捷键 ‌⌃Control\-E，用于移动光标到一段的末尾；而配合自动化工具，这些古老的操作方式还可以再抽新芽。

打通关键一环之后，剩下的工作就是仔细观察手动操作的规律，再将其记录下来、固定成 Keyboard Maestro 中的动作。

🛍 我撰写的付费栏目《Keyboard Maestro 进阶指引》正在 UNTAG 售卖，详解 Keyboard Maestro Macro 高级设计思路，欢迎选购：付费内容链接

---

[前往标准阅读页](https://utgd.net/article/20512?audience=web)
