敲错的时候我就想，如果输入法有类似宏（Macro）的功能就好了，用一个字母代替拼音中长且固定的组合，就可以减少几次按键，提升打字速度。

而且输入法我每天都要用，如果有提升输入效率的方法，哪怕只能提升一点儿，累计起来提升也是巨大的。

双拼就是这样一种高效的输入方法，它将拼音的[声母](https://zhida.zhihu.com/search?content_id=111895194&content_type=Article&match_order=1&q=声母&zhida_source=entity)和韵母分别映射到某个按键上，一个字只需要击键两次，一次声母，一次韵母。

## 什么是双拼？

和我们常用的全拼，以及传说中的五笔一样，双拼也是一种输入方法，并不是某款输入法软件。和全拼一样，主流操作系统自带的输入法都支持双拼。

我们先来复习下拼音。绝大多数拼音都是由一个声母加上一个韵母组成（少数没有声母，仅由韵母组成）。

声母：

```text
b p m f d t n l
g k h j q x
zh ch sh r z c s
w y
```

韵母：

```text
a o e ai ei ao ou an en ang eng ong
i ia ie iao iou(iu) ian in iang ing iong
u ua uo uai uei(ui) uan uen(un) uang ueng(eng)
ü üe(ue) üan(uan) ün(un)
```

> 三十多个韵母中，有一半左右由两个字母组成（比如`ai`），大约四分之一由三个字母组成（比如`eng`），还有几个由四个字母组成（比如`iang`）。

双拼把声母和韵母都映射到键盘的某个按键上，一个字只需要击键两次，一次声母，一次韵母。例如“双”，输入时只需要按一次`sh`对应的键和一次`uang`对应的键。

为了符合习惯，双拼把单字母的声母和韵母直接映射到了字母对应的按键上。比如“哈”`h-a`，输入和全拼一样。对于`zh`、`ch`、`sh`这些由多个字母组成的声母，被映射到了`v`、`i`、`u`等[非声母](https://zhida.zhihu.com/search?content_id=111895194&content_type=Article&match_order=1&q=非声母&zhida_source=entity)按键上。

有人做过[测试](https://zhuanlan.zhihu.com/p/34438126)，使用全拼，平均一个字需要击键2.9次。而双拼中每个字固定需要2次击键，和全拼比，双拼可以减少31%的击键（`(2.9-2)/2.9=0.31`），输入效率提升45%（`(2.9/2-1)/1=0.45`），可以说是非常大的提升。

使用双拼不但可以减少击键次数、提高输入效率，而且更加符合[拼音声母](https://zhida.zhihu.com/search?content_id=111895194&content_type=Article&match_order=1&q=拼音声母&zhida_source=entity)加韵母的设计。

双拼键盘布局，即将哪个声母/韵母映射到哪个键盘按键上，存在着多种方案。在macOS和iOS同时支持这么几套方案：搜狗双拼、拼音加加双拼、微软双拼和小鹤双拼：[在 Mac 上查看双拼键盘布局](https://link.zhihu.com/?target=https%3A//support.apple.com/zh-cn/guide/chinese-input-method/cimc29a772a9/mac)，[各双拼输入方案之间有明显的优劣之分吗？](https://www.zhihu.com/question/20191383/answer/159968080)。



### 双拼的原理

如果你使用全拼，想要完整敲出一个字的读音，需要敲出这个字拼音的每个字母。

虽然简拼能简化一点步骤，但除非是很常见的成语、俗语，否则重码率很高，选词很困难。

有没办法提高效率呢？有的，那就是双拼。

首先，大部分汉字的拼音可以分为[声母](https://zhida.zhihu.com/search?content_id=250165343&content_type=Article&match_order=1&q=声母&zhida_source=entity)和韵母（其实还有音调，只不过我们用拼音输入时用不着），例如拼音「wang」的声母是 w，韵母是 ang。

如果某个按键直接代表了韵母或声母，那么我们就不用将拼音的每个字母都打出，而是直接打出声母 + 韵母，这能大大减少按键次数。

双拼就是把声母、韵母都合理地分配到键盘上的按键，这种对应表就是双拼方案。例如下图是小鹤双拼方案：





我个人偏好[小鹤双拼](https://link.zhihu.com/?target=https%3A//www.flypy.com/pin.html)（flypy）

双拼有30多年历史，生态已经相当成熟。在各种输入法中，双拼的词库都和全拼共享。

对于`zh`和`z`、`in`和`ing`音分不清楚的情况，还可以使用输入法的“模糊拼音”功能。

小鹤双拼的布局经过了精心设计。可以看到，`l`对应`uang`和`iang`。这两个韵母是相容的，即这两个韵母可以组合的声母是完全不重合的：`uang`可以组合的所有声母是`g`、`k`、`h`、`zh`、`ch`、`sh`，而`iang`可以组合的所有声母为`n`、`l`、`j`、`q`、`x`，所以当`l`作为韵母时，输入法可以根据声母判断出韵母是`uang`还是`iang`。

搜狗拼音和QQ拼音等流行的输入法也都内置了小鹤方案。



![](https://pic1.zhimg.com/v2-cad7c8e8a7128e665bfc248876ef1818_1440w.jpg)

说明：图中的红色字母表示声母，蓝色字体表示韵母。可以看到，除了 zh，ch，sh 三个翘舌以外，键盘上原本的字母就是声母，不需要重新记忆，需要记的只有二十多个韵母的位置，并且这种记忆是有技巧的，并不需要花很多时间

‍双键布局
在手机上，我们可以用 26 键输入法，也可以用九键。

如果是用双拼的话，那么九键就不太适合了，重码率会更高。

为此，我们可以用双键布局，又叫 14 键，指的是一个按键承担两个字母的功能。

14 键是 26 键和 9 键的中间值，很好地平衡了误触性和重码率：相比 26 键，双键误触率更低；相比 9 键，双键重码率更低（毕竟多了 5 个按键），为此还是不少人喜欢用这个布局的。

![](https://pic3.zhimg.com/v2-a606466ff8a84e7caad65c6733a9d7a2_1440w.jpg)



官网：[https://www.flypy.cc](https://link.zhihu.com/?target=https%3A//www.flypy.cc)

特点：

- 韵母分配地比较合理，左右手比较平衡
- 官网文档丰富，还有官方 QQ 群（付费），
- 使用人数多，流行，上手快，支持的输入法多，生态还行
- 有小鹤音形这种更高阶的输入方案（难度中等偏上）



测评网站

有网友做了个双拼方案测评网站：[https://macroxue.github.io/shuangpin/eval.html](https://link.zhihu.com/?target=https%3A//macroxue.github.io/shuangpin/eval.html)

开源在 GitHub：[https://github.com/macroxue/shu](https://link.zhihu.com/?target=https%3A//github.com/macroxue/shuangpin)

### 双拼加形

在《[三千字长文：我知道的输入法技巧都在这了](https://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/P1mCdQl5gtNf22TUZ_Za4A)》里我提到了笔画输入、笔画筛选，就是在打出拼音的同时，给出该字的部分笔画，降低[重码率](https://zhida.zhihu.com/search?content_id=250165343&content_type=Article&match_order=5&q=重码率&zhida_source=entity)。



![](https://pic3.zhimg.com/v2-2a41551208610043e75b31c7d5735384_1440w.jpg)

同样的，双拼也有类似的机制，双拼的偏旁部首基本用声母确定，极少数需要记忆。

比如想打「机」，ji 是读音，偏旁是「木」，我们再打一个「m」，「机」就出来了。这个多按的按键，我们称之为[辅码](https://zhida.zhihu.com/search?content_id=250165343&content_type=Article&match_order=1&q=辅码&zhida_source=entity)。

这时候，重码率能降低到和五笔差不多，最多四键能确定一个字，按键次数也和五笔差不多。

当然，缺点就是还得学习一下字根，拆字规则（不过比五笔简单多了）。

这种拼音+字形的机制叫做“音形”，“音”就是拼音，“形”就是[形码](https://zhida.zhihu.com/search?content_id=250165343&content_type=Article&match_order=1&q=形码&zhida_source=entity)（就是通过字形来输入汉字的机制）。

## 双拼有啥缺点？

如果你已经习惯了全拼，那么换成双拼需要改变输入习惯，有一些学习成本，不过成本不高，只需要半天就可以掌握，然后慢慢形成肌肉记忆。小鹤双拼提供了[记忆口诀](https://link.zhihu.com/?target=https%3A//www.flypy.com/pin.html)帮助记忆，还可以把方案抄在纸上，一边练习打字一边看。还可以使用[双拼练习](https://link.zhihu.com/?target=https%3A//api.ihint.me/shuang/)，以及“双拼练习”、“小鹤双拼学习”等小程序。

虽然双拼相比全拼提升了效率，但其仍然是拼音输入法，重码率和全拼相同。比如想要输入“精益”（`j-ing-y-i`），就需要在“精益”和“敬意”等同音词中进行选择。如果你还想更快，可以试试[辅助码](https://zhida.zhihu.com/search?content_id=111895194&content_type=Article&match_order=1&q=辅助码&zhida_source=entity)，比如小鹤形码。辅助码速度更快，但是学习成本更高，而且主流的输入法并不支持。



©

如何通过 Alt 键打出所有特殊字符？

有时我们需要键入键盘上没有的字符，例如版权符号 ©，怎么办呢？

上一篇文章说过，可以用输入法自带的符号表功能。但除此之外，Windows 官方有一个功能，可以让我们可以通过 Alt 键输入任何特殊符号。

‍



### 使用方法

1. 按住键盘上的 Alt 键。
2. 按住 Alt 键后，在数字键盘上键入所需字符的四位数代码。
3. 松开 Alt 键。

此功能仅在使用数字键盘时有效，键盘顶部的数字行无效。



### 原理

那么这些字符的四位数代码怎么来的呢？其实这个四位数代码，就是这些字符的在某些编码方案（GBK、Unicode 等）中的序号

> 感兴趣的同学可以去看看我写的[字符编码教程](http://link.zhihu.com/?target=https%3A//www.peterjxl.com/literacy/character-encoding)。

‍

比如，字符「A」在 GBK、Unicode 中的序号是 65：

那么按下 Alt 键，输入 65 ，松开 Alt 键，即可完成字符「A」的输入。



‍

### 查询字符编码

如何知道一个字符的序号呢？总不能全部背下来吧！这里介绍几个方法。

‍

### 通过在线网站

不少在线网站提供这样的功能，例如 [qqxiuzi.cn/bianma/zifuji.php](http://link.zhihu.com/?target=https%3A//www.qqxiuzi.cn/bianma/zifuji.php)：



1. 方案一：使用预定义的 Rime 符号快捷键（推荐优先尝试）
   Rime 本身为特殊符号预设了基于拼音的输入方案。你可以直接尝试以下输入方式：

   输入特殊符号的拼音首字母：例如，输入 bfh (百分号)，候选词中可能会出现 %、‰、° 等符号。

   输入符号名称的拼音：比如输入 pingfang 可能会得到平方符号 ²。

   利用特定前缀：有些配置会为符号设置统一前缀。例如，在 rime-ice 中，有用户提到可以通过输入 v1、v2 等来输出罗马数字 Ⅰ、Ⅱ。

   方案二：自定义符号映射文件 (punctuation.yaml)
   这是最直接的方法。你可以在 rime-ice 的配置文件夹中找到 punctuation.yaml 文件，它定义了按键与输出符号的对应关系。

   如何操作：

   找到并打开 rime-ice 配置目录下的 punctuation.yaml 文件。

   在 full_shape（全角模式）或 half_shape（半角模式）部分，添加或修改你需要的映射。

   示例说明（来自 punctuation.yaml 文件）：

```yaml
   full_shape:
     '$' : [ ￥, '$', '€', '£', '¥', '¢', '¤' ]  # 输入 $ 键，候选显示一系列货币符号[citation:2]
     '%' : [ ％, '°', '℃' ]                    # 输入 % 键，候选显示百分号、度、摄氏度[citation:2]

   half_shape:
     '/' : [ 、, '/', '／, ÷ ]                # 半角模式下，输入 / 键，候选包括顿号、除号等[citation:2]
     
```
   修改保存后，在 Rime 中重新部署即可生效。

   方案三：使用 OpenCC 滤镜 (Emoji & 特殊符号)
   这是一个更高级的方案，通过 OpenCC（开放中文转换）滤镜，你可以创建一个包含海量特殊符号（包括 Emoji）的库，并通过输入关键词来触发候选。

   如何操作：

   你可以从 GitHub 等开源社区找到现成的符号滤镜项目，例如 rime-opencc_emoji_symbols。

   按照项目说明，将相应的 es.txt (或 es.json) 文件放入 Rime 的 opencc 文件夹。

   在你使用的方案配置文件（例如 rime-ice.schema.yaml）中添加相关代码以启用该滤镜。

   方案四：使用独立输入方案 (如 RIME_LaTeX)
   如果你经常需要输入数学符号或希腊字母，可以引入一个独立的 Rime 方案，如 RIME_LaTeX。

   如何操作：

   将 RIME_LaTeX 的方案文件（latex.schema.yaml 和 latex.dict.yaml）复制到你的 Rime 配置文件夹中。

   在 default.custom.yaml 中的 schema_list 下添加 - schema: latex，这样你就可以切换到这个方案使用。

   使用时，只需输入反斜杠 \ 加上符号的 LaTeX 名称，例如输入 \lambda 即可输入 λ。

   方案五：自定义短语 (custom_phrase.txt)
   虽然主要用于快速输入长句，但你也可以用它来为特殊字符设置非常个性化的编码。

   如何操作：

   找到 custom_phrase.txt 文件。

   按格式添加一行：版权符号 bqfh 1（Tab 键分隔）。

   以后输入 bqfh，候选词中就会出现 ©。这个方法的优先级可以调得很高，确保你自定义的编码排在前面。





![](https://picx.zhimg.com/v2-789d1533fd44b9399839723ea02303d5_720w.jpg?source=d16d100b)

![](https://pic1.zhimg.com/v2-df68c7ee2bfe4f1ce552f9da6d1c8324_720w.jpg?source=d16d100b)

第一个口诀文字版：

‍

| Qiu  | Wei  | Ruan | T_ue_ve | Yun  | U_shu | I_chi |
| ---- | ---- | ---- | ------- | ---- | ----- | ----- |
| 秋   | 闱   | 软   | 月      | 云   | 梳    | 翅    |

| Song_iong | Dai  | Fen  | Geng | Hang | J_an |
| --------- | ---- | ---- | ---- | ---- | ---- |
| 松　拥    | 黛   | 粉   | 更   | 航   | 安   |

| Kuai_ing | Liang_uang | Zou  | Xia_ua |
| -------- | ---------- | ---- | ------ |
| 快　莺   | 两　望     | 奏   | 夏　蛙 |

| Pie  | Cao  | V_zhui_v | Bin  | Niao | Mian |
| ---- | ---- | -------- | ---- | ---- | ---- |
| 撇   | 草   | 追　鱼   | 滨   | 鸟   | 眠   |

‍

这个口诀什么意思呢？就比如第一行第一个字，字母是 Q，带有韵母 iu，两者组合起来就是 Qiu，即“秋”的读音；

第二个字，字母是 W，带有韵母 ei，组合起来就是 Wei，即“闱”的读音；以此类推剩下的字。

背下了第一句，你就知道了键盘字母区第一行“Q W E R T Y U I”的声母和韵母。以此类推剩下的句子。

其实韵母的分布也是有规律的，可以自己多总结。以小鹤双拼为例：

- 所有 o 结尾的韵母都是 o 键
- en（f）挨着 eng（g），an（j）挨着 ang（h）。它们都在第二排，且位置对称
- a、e、i、o、u。单音节韵母位置不变
- ian（m）挨着 iao（n）

‍

1. 键盘 v 对应是 zh；
2. 键盘 u 对应是 sh；
3. 键盘 i 对应是 ch；

### 零声母方案

有些字的拼音是没有声母的（例如“啊”），为此，双拼有一套自己的方案。

在小鹤中，用的是零声母方案，即将韵母首字母作为声母（这个声母也叫零声母）。打法如下：

- 单字母韵母，零声母 + 韵母所在键，如： 啊 ＝aa，哦=oo，额=ee
- 双字母韵母，零声母 + 韵母末字母，如： 爱 ＝ai，恩=en，欧=ou
- 三字母韵母，零声母 + 韵母所在键，如： 昂 ＝ah

一句话来说就是，双字母拼音用全拼，一三字母拼音打法为：首字母 + 韵母所在键。



### 词组

除了打单字，双拼也可以打词组，小鹤的规则如下：

| 字数   | 规则                   | 例词       | 全码 |
| ------ | ---------------------- | ---------- | ---- |
| 二字词 | 首字前两码＋末字前两码 | 双拼       | ulpb |
| 三字词 | 前两字首码＋末字前两码 | 输入法     | urfa |
| 四以上 | 前三字首码＋末字首码   | 他乡遇故知 | txyv |

‍

‍

### 小鹤音形

双拼的本质还是拼音输入，重码率并没有降低，为此我们可以加上辅码，根据该字的字型来降低重码率。

在《[三千字长文：我知道的输入法技巧都在这了](http://link.zhihu.com/?target=https%3A//mp.weixin.qq.com/s/P1mCdQl5gtNf22TUZ_Za4A)》里我提到了笔画输入、笔画筛选，就是在打出拼音的同时，给出该字的部分笔画，降低重码率。

至于小鹤音形的规则，我这里就不讲了，因为我也才入门，简单了解了下其实也不难，比五笔简单多了。


### 方法论

1. 先掌握双拼方案，至少混个脸熟。这一步请参考上一篇文章。
2. 开始练习。可以用金山打字通，可以用一些在线练习网站，如果有码字的习惯，也可以直接开始写文章
3. 遇到不会的，再去看双拼方案图，记忆起来会更牢固
4. 先保证正确率，再提高速度，避免养成错误的肌肉记忆
5. 把手机输入法也切换成双拼，强迫自己使用，能更快记住和适应键位

强烈建议专门抽出一两天来练习，一两天其实完全足够我们记住所有键位了，然后就可以放下全拼，开始使用双拼了。

如果一两天的时间都没有，那至少希望你能抽出两三个小时记忆键位，先掌握双拼方案，达到能用的程度，然后就开始用双拼，一开始慢一点没关系的，开始用双拼后，后续的每次打字都能让你更熟练。

### 做好记录

可以考虑记录打字速度：

- 先记录自己的拼音打字速度
- 然后练习双拼，分别记录一个月后，三个月后的打字速度

通过比较，才知道双拼是不是值得学习的。

‍