按键设置
中英文切换键、候选词管理、候选操作键组、按键行为、候选无效按键、自定义按键、功能快捷键与全局热键,以及按键冲突的判定与优先级
设置工具的「按键」页依次是:中英文切换、候选词管理、候选操作、按键行为、候选无效按键、自定义按键、功能快捷键。
对应配置段主要是 config.toml 的 [keys],完整键名、可选值与默认值见按键配置;「按键行为」一卡与「标点随中英文切换」等几项的配置键在 [input] 里,见输入行为配置。
中英文切换
| 选项 | 说明 | 出厂 |
|---|---|---|
| 切换按键 | 用于切换中英文的修饰键,可多选,按下任意一个即切换 | 左 Shift、右 Shift |
| 切换时编码上屏 | 中文切到英文时,把已输入的编码直接上屏(关则丢弃) | 开 |
| 标点随中英文切换 | 中文模式出中文标点、英文模式出英文标点,省去手动切换标点 | 关 |
| 中英文切换高级设置 0.127 新增 | 点「设置」打开对话框,里面四项见下 |
可选按键:左 Shift、右 Shift、左 Ctrl、右 Ctrl、Caps Lock。
Caps Lock 仅 Windows 支持 0.127 新增:短按切换中英,按住半秒以上松开才开关大写锁定;大写开着时、或焦点在密码框里,短按也是开关大写。为此输入法会装一个全局键盘钩子,只在本输入法处于前台时拦下 CapsLock。
是「轻敲」不是「按住」
这些键在松开时才触发切换,且只认轻敲——按住超过约 500 毫秒、或按下期间碰了别的键,都不算切换。这样 Ctrl + A、Shift + 字母 这类组合才不会被误判。Caps Lock 例外:按住半秒以上松开是开关大写锁定;带着 Shift / Ctrl / Alt / Win 按 Caps Lock 时交还系统,不算切换。
「中英文切换高级设置」对话框里的各项(0.127 以前直接排在卡片上):
| 选项 | 说明 | 出厂 |
|---|---|---|
| CapsLock 切换时编码转大写上屏 0.127 新增 | 打字中按 CapsLock,正在打的编码转成大写上屏(打 wps 得 WPS):开大写时如此,CapsLock 设为切换按键、用它切到英文时也如此;已选定的字词不转。只管大小写,上不上屏看「切换时编码上屏」(临时英文总会上屏)。Windows / Linux | 关 |
| Ctrl+空格 切换中英文 0.125 新增 | 关掉后 Ctrl+空格 原样交给应用,IDEA / Android Studio 的代码提示就能用了。仅 Windows,见下文 | 开 |
| 切换中英文时取消大写锁定 | 切换中英文时自动取消 CapsLock;切换方案不受此项影响,一律取消。仅 Windows(0.124 及以前在「输入 → 临时英文」) | 关 |
| 取消大写后进入 0.125 新增 | 上一项开着时,取消大写之后落到哪个模式:中文(原有行为,Shift 回到中文)/ 英文(取消大写接着打小写)/ 照常切换 | 中文 |
把 Ctrl+空格 让给应用
IDEA、Android Studio 等开发工具用 Ctrl+空格 唤出代码提示,与清风的中英切换冲突。关掉「中英文切换高级设置」里的「Ctrl+空格 切换中英文」后,清风不再拦这个键,也不会因它切换中英文。
- 在全局自定义按键里把
Ctrl+空格设为「不启用」,效果与关掉这个开关相同,两处随便用哪一处。 - 关掉后按了没反应、应用里也收不到?多半是 Windows 自己也把 Ctrl+空格 设成了输入法开关热键,按键在系统那一层就被拿走了,清风管不到。清风这时只能保证中英模式不被它翻掉,要让应用收到这个键,还得去系统里关掉:设置 → 时间和语言 → 输入 → 高级键盘设置 → 输入语言热键,在「高级键设置」里选中「中文(简体)输入法 - 输入法/非输入法切换」,点「更改按键顺序」,取消勾选。
候选词管理
| 功能 | 可选 | 出厂 |
|---|---|---|
| 置顶词条 | Ctrl + 数字 / Ctrl + Shift + 数字 / 不使用 | Ctrl + 数字 |
| 删除词条 | Ctrl + 数字 / Ctrl + Shift + 数字 / 不使用 | Ctrl + Shift + 数字 |
置顶把候选固定到首位;删除隐藏该候选(单字不可删除)。产生的规则可在词库页的候选调整里查看与撤销。
这两项只认这两种模板写法,不能配成任意组合键。两者也不能配成相同的组合。
候选窗快捷键的分派优先级最高
这一层在临时英文 / 临时拼音 / 快捷输入 / 网址输入 / 引导键特殊模式的 Ctrl / Alt 守卫之前分派——所以配成候选窗快捷键的组合,在这五种模式里也照样能用。
候选操作
四组键,每组都可多选。
次选 / 三选快捷键
选中第 2、3 位候选词。出厂:分号/引号。
| 选项 | 第 2 候选 | 第 3 候选 |
|---|---|---|
| 分号/引号 | ; | ' |
| 逗号/句号 | , | . |
| 左/右 Shift | 左 Shift | 右 Shift |
| 左/右 Ctrl | 左 Ctrl | 右 Ctrl |
修饰键组同样走「轻敲」判定(松开时触发、限时 500 ms、中途按别的键即取消)。
高亮移动按键
在候选列表中移动选中项。出厂:两组都开。
| 选项 | 上移 | 下移 |
|---|---|---|
| 方向键 | ↑ | ↓ |
| Tab | Shift + Tab | Tab |
翻页快捷键
出厂:PageUp/PageDown、减号/等号。
| 选项 | 上一页 | 下一页 |
|---|---|---|
| PageUp / PageDown | PageUp | PageDown |
| 减号/等号 | - | = |
| 方括号 | [ | ] |
| Shift+Tab / Tab | Shift + Tab | Tab |
| 逗号/句号 | , | . |
以词定字
输入词组后按指定键只取第 1 或第 2 个字。出厂全部关闭。
| 选项 | 取第 1 字 | 取第 2 字 |
|---|---|---|
| 逗号/句号 | , | . |
| 减号/等号 | - | = |
| 方括号 | [ | ] |
词长不足时的行为由候选无效按键决定。
按键行为
五个下拉、一个输入框、一个开关:
| 选项 | 出厂 | 说明 |
|---|---|---|
| 回车键功能 | 上屏编码 | 有编码时按回车怎么处理 |
| 空码时空格键功能 | 上屏编码 | 无候选时按空格怎么处理 |
| 空码时标点键功能 0.118 新增 | 清空编码 | 无候选时按标点/符号键怎么处理编码 |
| 编码中可直接输入的符号 0.123 新增 | - | 打编码的过程中,这些符号直接进入编码,见下面 |
| 数字小键盘功能 | 直接输入数字 | 小键盘数字键的行为 |
| 全角时小键盘半角输出 0.120 新增 | 关 | 打开后,全角状态下小键盘的数字和符号仍出半角,见下面 |
| Alt+数字上屏注释/拼音 0.123 新增 | 关闭 | 有候选时按 Alt+数字 上屏该候选的拼音或注释,而不是候选字本身,见下面 |
前三项的取值大体相同,但标点比另两项多一项:
| 取值 | 行为 | 哪几项有 |
|---|---|---|
| 上屏编码 | 把你打的原始编码字母上屏,清空缓冲 | 三项都有 |
| 清空编码 | 直接丢弃缓冲,编码不上屏 | 三项都有 |
| 清空编码,标点也不上屏 0.119 新增 | 丢弃缓冲,连这个标点本身也不输出——整个按键当没按过 | 只有标点项 |
「空码」就是打了码却一个候选都没出来,多半是打错了字根。这三项管的都是这时候那串废码的去向。
为什么标点要多一项:回车和空格选「清空编码」时,回车不换行、空格也不插空格——这两个键本身就不产出可见字符。标点不一样,选「清空编码」时标点照常上屏,因为标点通常正是你想打的那个字符。想连标点一起吞掉(把它当成「取消这串废码」的键),才选第三项。
想让空格也丢弃废码,把「空码时空格键功能」也改成「清空编码」。手机端(Android)的标点项出厂为「上屏编码」。
0.118 之前这两项列了四个取值
「上屏并继续输入」「忽略」从未被实现,选了等同「上屏编码」。0.118 起只保留真实存在的取值(当时是两项),旧配置会自动归一为「上屏编码」,行为不变。
编码中可直接输入的符号 0.123 新增
打 sun-panel、e-mail 这类带连字符的英文时,减号本来是打不进去的:它出厂是向前翻页键,
在第一页按下没有任何反应;而把它从翻页键里摘掉的话,它又会顶着编码直接上屏。两头都不通。
填进这个框的符号,在打编码的过程中会直接进入编码区:
sun → 按 - → 编码区 sun- → 接着打 panel → 编码区 sun-panel → 回车上屏出厂只放了一个减号。要 snake_case 的下划线、obj.prop 的点号,自己往里加即可(逐字符,
不用分隔符,写成 -_. 就是三个)。留空 = 关闭本功能。
加字符前先想一下那个键现在在干什么
出厂只放减号,是因为它是唯一一个「既是英文里的高频字符、又恰好卡在一格什么都不会发生的
按键」上的符号。_ . / @ 不一样:它们在编码中按下本来就有行为(顶码上屏 +
出符号),加进来等于改掉一条你每天都在用的习惯。让位判据护得住翻页、选词、分隔符这些
有名有姓的功能,但护不住「这个键原本的标点行为」——那是它让位之后才会发生的事。
几条边界,都是刻意的:
- 该键另有功能时自动让位。翻页、移高亮、取消、辅助码、单字输入、次选、以词定字、 自定义按键动作(含方案自带的)、音节分隔符与英文分词符、数字选词,占了任何一个, 这个键就照原功能办,填不填都不影响。
- 唯一的例外是「有候选、且还没翻过页时的上一页键」。只有那一格按下去确实什么都不会 发生(第一页没有上一页可翻),让给字符输入不损失任何东西。一旦你翻过页,减号立刻恢复 翻页身份——这与微软拼音的做法一致。重新打一串码(候选换了一批)之后,它又是字符。
- 没有候选时不接管。打错了码、一个候选都没有的时候,减号仍然照原样把废码甩掉
(见上面「空码时标点键功能」),全角和自定义标点映射也照常。只有当编码里已经有
这类符号时才继续收——那时你显然在打
e-mail-addr的第二个连字符。 - 只在编码中生效。没在打字时按减号走的还是标点那条路(全角态下出的是全角减号), 否则任何程序里都打不出它了。
- 编码里混进这类符号后,这一串就不再当中文编码看:候选清空、不再顶码上屏, 按回车或空格按上面那两项处置——出厂都是「上屏编码」,于是整串原样上屏;改成 「清空编码」的话就是丢弃。退格删掉那个符号,候选就回来。
想要英文候选和词频记忆,那是临时英文的活; 本项只负责把字符收进编码区,不查词库。
数字小键盘:
| 取值 | 行为 |
|---|---|
| 直接输入数字 | 小键盘就是打数字,不参与选词 |
| 同主键盘区数字 | 小键盘与主键盘数字键等价,可用于候选选择和快捷输入 |
全角时小键盘半角输出 0.120 新增
开着全角时,小键盘打出来的还是 123,不是 123;. + - * / 同理。
小键盘的用途就是录数字——金额、编号、日期——全角数字在表格和编号栏里几乎总是错的;而开全角通常只是为了排正文。所以把它单拎出来,不跟主键盘走。
和上面那个「数字小键盘功能」是两回事,互不干涉:即使选了「同主键盘区数字」,小键盘照样能选词翻页,只有真正出字的那一步才改成半角。
只管「按一下直接上屏」的那条路
临时英文、网址输入、快捷输入这些先攒进缓冲、整串再上屏的模式不受它影响——缓冲里只存字符不存来源,abc12 里的 12 是不是小键盘打的已经分辨不出来了。
Alt+数字上屏注释/拼音 0.123 新增
聊天里想发拼音、想把候选旁边的注释(英文释义、编码……)直接打出来时用。打出候选后:
| 按键 | 上屏 |
|---|---|
| Alt+1 … Alt+9、Alt+0 | 当前页第 1 … 9、10 个候选的拼音或注释 |
| Alt+空格 | 空格会选的那一个(没移动过高亮时就是首选) |
下拉决定上屏的是什么:
| 取值 | 上屏 | 例:「你好」 |
|---|---|---|
| 关闭(出厂) | 功能不启用,Alt+数字照常归程序 | — |
| 带调拼音 | 带声调的拼音,音节之间空格 | nǐ hǎo |
| 不带调拼音 | 去掉声调 | ni hao |
| 候选注释 | 候选右侧那段小字,按当前的注释模板生成,不截断 | 取决于模板 |
几条规则:
- 只在有候选时生效。没在打字时,Alt+数字(很多程序的菜单快捷键)和 Alt+空格(窗口的系统菜单)照常给程序。
- 自定义按键优先:在自定义按键里已经绑了功能的 Alt 组合,本功能让出这个键。
- 没有可上屏的内容时什么都不做:比如注释模板为空、英文候选查不到读音。组合保留,可以换别的键选。不会退回去上屏候选字。
- 拼音分步选词时,已经选定的前半段照常以汉字上屏,后面接这个候选的拼音或注释;没被这个候选用掉的剩余编码丢弃。想要整句的拼音,就选整句那一条。
- 这样上屏的不是那个词,所以不参与调频。
- 按键不能改:能拿来选词的数字组合里,只剩 Alt 没被占用。
这一组在配置文件里属于 input 域
虽然显示在「按键」页,配置键是 input.*(如 input.enter_behavior、input.numpad_behavior)。见输入行为配置。
候选无效按键
前三项回答同一个问题:**你按了一个选词键,但那个位置根本没有候选,该怎么办?**第四项管的是翻页键翻不动的情形。
| 选项 | 触发场景 |
|---|---|
| 数字键无效时 | 按的数字超出当前页候选数量(如只有 3 个候选却按了 7) |
| 次选三选键无效时 | 候选不足 2 / 3 个却按了次选或三选键 |
| 以词定字键无效时 | 候选词长度不足却按了以词定字键 |
| 翻页键翻不动时 0.127 新增 | 首页按上翻、末页按下翻(只算 - = , . [ ] 这类能出字的翻页键) |
前三项共用同一组取值:
| 取值 | 行为 |
|---|---|
| 不起作用(默认) | 忽略这次按键,编码与候选都不变 |
| 上屏编码 | 上屏当前的原始编码 |
| 上屏并继续输入 | 上屏编码后保持输入状态 |
「翻页键翻不动时」只有「不起作用」(默认)与「上屏并继续输入」两档:选后者,翻不动的那一下改为上屏当前高亮候选、再输出这个键的符号(按中文标点、全角照常转换)。两个前提:
- 本批候选还没翻过页。翻到第 2 页再翻回来,首页的
-仍是翻页键。 -要先清空「编码中可直接输入的符号」(出厂就有-,组码中它优先进编码);=等其它键不受影响。
完整条件与「中文里写 ->」的配置见按键配置 · 翻页键翻不动时。
配置键是 keys.overflow.*,见按键配置 · 无效按键策略。
自定义按键 0.118 新增
上面「候选操作」那四项是按组勾选的常用形态。要逐键指定,用这一节的两个入口:
| 入口 | 管什么 | 能配什么 |
|---|---|---|
| 全局自定义按键 | 给一个键指定功能 | 进临时拼音 / 临时英文 / 辅助码筛选 / 快捷输入 / 特殊模式、切换方案、中英文切换等 |
| 全局自定义输入中按键 | 这个键在输入中(有编码或候选)干什么 | 翻页、高亮移动、选第 N 个候选、以词定字、放弃当前输入、辅助码筛选 |
「辅助码筛选」两处都有,不是重复:两张表认得的键名不一样——上面那张只认符号键、字母 z 与四个修饰键,Tab / PageDown / 方向键要走下面那张。
两者是两张表而不是一张,同一个键在两处可以是两个动作——Tab 输入中翻页、没在输入时仍是宿主的制表符。
分野不是「空闲时 vs 输入中」
「全局自定义按键」里配的键在输入中同样能按:组合键走热键、修饰键走松开轻敲、有字符的键会先把已有编码上屏再执行。「轻敲右 Shift 切中英文」正是打字中途最常用的一个。
真正的差别是「全局自定义输入中按键」只在有编码或候选时生效,管的是对这段输入本身的操作。
与「候选操作」那四项的关系:四项会被折算进「全局自定义输入中按键」同一张表,本表里显式配的键优先。所以想改翻页键,勾选项和这里改哪边都行;只有需要「某个键在打字时干一件勾选项里没有的事」时才必须来这里。
怎么配
两个入口的界面一样:一行一条绑定,显示成 [按键] [功能],右侧「修改 / 删除」,左下角「添加」。点「添加」或「修改」弹出按键选择对话框,分两段选:
- 按键——先选「单个按键」还是「组合键」。组合键勾修饰键再选基础键,下方实时显示合成结果。
- 功能——先选分类(不启用 / 输入模式 / 切换方案 / 状态切换 / 工具),再选具体功能。
功能列表随所选按键变化,这不是界面在藏东西,而是内核对这两张表的裁决本就分键的形态:
| 你选的键 | 能配的功能 |
|---|---|
组合键(Ctrl + Shift + R) | 与单个按键一样多 0.122 新增,中英文切换、临时拼音、快捷输入这些以前只有单键能配的现在都能绑;只有「造词」两项仍在功能快捷键里设。0.121 及以前只能配「切换方案」与「特殊模式」 |
| 纯修饰键(左右 Shift / Ctrl) | 全部 |
有字符的键(`、;、\、z) | 除「中英文切换 / 循环切换方案 / 切换方案」外的全部——那几个绑上去是单程票,切到英文方案就按不回来 |
功能列表变短时下方会说明原因
换一个键会让某些分类整个消失(选 \ 之后「切换方案」「状态切换」就不在列表里了)。对话框下方那行灰字会写清是哪一类、为什么、该改用什么键。看不到想要的功能时先读它。
配组合键时,如果这个组合会被 Windows 先拿走,对话框下方会多出一行提示 0.122 新增,分两档:
| 提示 | 什么键 | 含义 |
|---|---|---|
| Windows 系统快捷键,输入法收不到 | Win + 任意键、Alt + Tab / Alt + Space / Alt + F4 | 键根本到不了输入法这一层,请换一个 |
| Windows 输入法热键,可能被系统占用 | Ctrl + Shift、左 Alt + Shift 等「输入语言热键」的默认值 | 多数机器上仍能正常用,不生效时先想到它 |
被系统抢走时日志里一个字都不会有——键没到输入法,自然无从记录,所以这行提示是唯一的线索。
「全局自定义输入中按键」只认 Shift 一种修饰键,所以它的组合键那档没有 Ctrl / Alt / Win。
对应的配置键是 keys.key_actions 与 keys.session_actions。方案文件里还能各写一份只对该方案生效的,见方案设置。
上屏当前高亮候选 0.123 新增
「全局自定义输入中按键」的「选择候选」分类,排在最前的一项:上屏当前高亮候选(同空格)——出口与按空格上屏高亮候选完全一致(词频、历史、统计等一致)。主输入、临时拼音、临时英文、快捷输入、特殊模式、辅助码筛选下都能配。没有候选时这个键不吃,按键回落原语义。
对应配置键是 session_actions 的 commit_highlighted,方案文件也能单独配一份。
联想候选出现时,这个键跟随联想自己的「空格上屏联想候选」开关:开着才上屏当前高亮的联想候选,关掉则不上屏联想候选,按键回落原语义。
上屏编码 0.127 新增
「全局自定义输入中按键」的「编辑」分类里的上屏编码:把正在打的编码原文上屏,与回车上屏编码同一条路。键选「左Ctrl」就是极点、小鸭那种单按 Ctrl 上屏编码的习惯。
它不跟「回车键」那项设置:回车设成清空编码时,这个键仍然上屏编码。没在打字、或只有联想候选时这个键不吃,按键回落原语义。
对应配置键是 session_actions 的 commit_code,方案文件也能单独配一份。
调用直通命令 0.123 新增
「全局自定义按键」与「全局自定义输入中按键」都新增了「高级」分类,里面的调用直通命令把命令直通车的表达式直接挂到一个键上——填一段 proc.run(...) / open(...) / key.tap(...) 之类的表达式,按下就执行。按键总览会显示成 运行命令:<表达式> 的字样。
「全局自定义按键」里,组合键与修饰键轻敲随时可按(中英文态都行);单个有字符的键只在中文态、且没有输入时触发,英文态下这个字符照常输出。「全局自定义输入中按键」里配的命令在正在输入时触发,当前输入原样保留。
组合键只在全局自定义按键里生效
方案级的按键自定义(对应 key_actions,见方案设置)不提供组合键选项——组合键要绑命令,只能来这里的「全局自定义按键」配。已经写在方案文件里的组合键条目不会被删,只是不再生效:设置页会把它标成「组合键仅全局有效」,按键总览也标成不生效。方案级输入中按键自定义(对应 session_actions)不受影响——它本来就只认 shift+ 一种前缀,方案级的 shift+… 绑定(含 command:<表达式>)照常有效。
对应配置键是 key_actions 与 session_actions 的 command:<表达式>。
功能快捷键
每项以「修饰键 + 主键」的形式在对话框中编辑。留空即不绑定该功能。
| 功能 | 默认快捷键 | 可设全局 |
|---|---|---|
| 切换输入方案 | Ctrl + Shift + E | ✅ |
| 切换全角/半角 | Shift + Space | ✅ |
| 切换中/英文标点 | Ctrl + . | ✅ |
| 切换简入繁出 | Ctrl + Shift + J | ✅ |
| 显示/隐藏工具栏 | Ctrl + Shift + \ | ✅ |
| 显示/隐藏软键盘 0.120 新增 | Ctrl + Shift + K | —— |
| 打开设置 | Ctrl + Shift + ] | ✅ |
| 打开词库管理 | 不绑定 | ✅ |
| 快捷加词 | Ctrl + = | —— |
| 打开加词界面 | Ctrl + Shift + = | —— |
| 切换到本输入法 | Ctrl + Shift + [ | 天生全局 |
- 打开词库管理——出厂不绑定(常规入口已有主菜单「词库管理…」),配了则直接打开设置窗口的词库管理页,落在你当前正在用的方案域
- 快捷加词 / 打开加词界面——都需要当前的输入上下文,只在中文模式生效。这两个键额外走系统级拦截,规避 QQNT / Tabby 等宿主的加速键双处理
- 切换到本输入法——在任意应用中一键切回清风。它经 Windows 的输入法直接切换机制(
DirectSwitchHotkeys注册表)注册,由系统ctfmon原生处理,天生全局,不参与下面的全局热键列表
另有「界面截图」快捷键(默认 Ctrl + Shift + F11)未列在上表,编辑入口见按键配置。
全局热键
默认情况下,快捷键只在输入法激活时响应。在热键编辑对话框中勾选「全局」,即可注册为系统全局快捷键——输入法未激活时也生效。
全局热键共支持 9 个功能:上表标 ✅ 的几项、切换繁入简出(未在本表列出,同「切换简入繁出」一档)、以及「界面截图」。设置界面当前暴露「打开设置」「打开词库管理」「界面截图」三项的全局勾选,其余可在配置文件的 keys.global_hotkeys 里直接填写。
方案直达热键
给单个方案绑一个键,按下直接切过去,不必循环。它不在本页配,而在方案页 → 选中方案 → 设置 → 按键设置 → 切换到本方案按键,见方案设置。
它落在全局 keys.key_actions 里,所以配完之后也会出现在本页的「全局自定义按键」列表里,是同一条绑定的两个入口。在这里删掉它,方案那边的「切换到本方案按键」也就跟着清了。
同样地,引导键特殊模式的直达热键也在那里配。但它们与本页的功能快捷键在内核里是同一张表,会互相冲突——见下。
冲突与优先级
同一个物理键被两处配置争用时,会发生什么?答案取决于内核对这次争用的实际处置,分两种情况。
设置工具会实时检测,两种情况的呈现也不同:
| 级别 | 内核行为 | 你会看到 |
|---|---|---|
| 真冲突 | 两个功能在同一输入状态下都想要这个键,内核只能选一个 → 另一个静默失效 | 内容区顶部的琥珀色常驻警告条,改到没有为止 |
| 共存 | 有确定的分时裁决,两个功能都能用,只是生效条件不同 | 刚配出这个组合时弹一次提示,说明实际行为 |
三个场景域,跨域不算冲突
内核对一次按键的处理是状态相关的:同一个键在不同输入状态下被路由到不同功能。所以「同一物理键被多个功能使用」未必是冲突——只有两个功能在同一输入状态下都可能响应,才是真冲突。
据此分成三个场景域,只在域内检测:
| 域 | 生效输入状态 | 覆盖哪些设置 | 争用时谁赢 |
|---|---|---|---|
| 触发键 | 空缓冲、无候选 | 临时拼音触发键、临时英文触发键、快捷输入触发键、引导键 | 固定优先级链:临时英文 > 临时拼音 > 引导键特殊模式 > 快捷输入 |
| 候选键 | 有候选时 | 次选/三选、翻页、高亮移动、以词定字,以及中英文切换键(见下) | 以词定字先于翻页;次选键先于混输触发键的溢出分支 |
| 快捷键 | 组合键命令 | 10 个功能快捷键 + 置顶/删除词条 + 方案直达热键 + 模式直达热键 | 同一张 key_down 表,先注册者赢,后者静默失效 |
举例:; 在空缓冲态是临时拼音触发键、在有候选态是次选键,二者分时复用,不算冲突,也不会提示。
方案直达热键最容易撞车
方案直达热键与模式直达热键与本页的功能快捷键同属快捷键域。在方案管理对话框里把某方案配成 Ctrl + Shift + E(正好是「切换输入方案」的出厂值)是点得出来的操作——现在会给出警告,此前完全没有提示。
置顶/删除词条会展开成十个键再比
它们的值是模板 ctrl+number,检测时展开成 Ctrl+0…Ctrl+9 十个具体键。所以「把打开设置配成 Ctrl+1」会被检出与置顶词条重叠。同一对分组撞多个键时文案会合并成一条。
唯一的共存:中英切换键 vs 次选键
把左/右 Shift 同时配成「中英文切换」和「次选/三选键」,是可用的设计,不是冲突。内核的裁决:
| 状态 | 行为 |
|---|---|
| 有候选、位次够 | 选中该候选,不切中英文 |
| 有候选、但页内候选不足该位次 | 吞掉这个键,既不选也不切 |
| 无候选 | 切换中英文 |
两个功能都能用,只是生效条件不同。所以设置工具只在你刚配出这个组合时提示一次,不会挂常驻警告条。
为什么修饰键选词在松开时判定
纯修饰键的按下事件不能吃——吃了宿主程序就看不见修饰键,AutoCAD 的正交模式会失效并卡顿;而且在按下时判定会让 Ctrl + A 的第一下 Ctrl 就把候选选走。所以修饰键选词与中英切换都在松开时处理,并复用同一套「轻敲」判定。
已知不检测的一处
混输触发键与次选键的候选态争用不参与检测。混输触发键(如快捷输入的 ;)在空缓冲态是触发键,在有候选态还会作为次选溢出分支被检查。这一层由内核按「次选优先」解决,行为可控,故只在文档说明、不报警告。
对这篇文档有疑问,或发现内容有误?
欢迎到文档仓库提 issue,写明问题时附上本页链接即可。