设置说明输入设置

快捷输入

分号触发的计算器、日期格式化、农历、拼音子模式与自由字面输入,候选来源与布局配置,以及候选格式的自定义

v0.116.0

在中文模式下按 ;(分号)进入快捷输入模式,用于计算、日期格式化等即时输入。触发键可配置,也可以完全禁用。

输入功能示例
; + 数学表达式计算器;1+2*37
; + 日期数字日期格式化(含农历;2026.4.242026年4月24日农历三月初八 等多种格式
; + 年月数字年月格式化;2026.42026年4月
; + 字母进入拼音子模式可在快捷输入内使用拼音输入
; + 越界字符转入自由字面输入 0.114 新增;GetTestData()GetTestData()

模式内操作:

  • 缓冲区非空时,按 az 选择候选
  • Space 上屏首选,或重复上次输入
  • Enter 上屏原文
  • Esc 退出

快捷输入本质是一个「混输实例」

它在配置里是 schema.mix_modes 数组的一项(内置实例 id 为 quick_mix)。所以下面的每一项设置都是这个实例独有的——你可以再建别的实例,各配各的触发键与候选来源。手写配置的写法见方案与引擎配置

设置项

设置工具「输入」页 →「快捷输入」卡片,共六项:

选项说明
快捷输入触发键闲时按触发键进入快捷模式,可多选;全部取消勾选即禁用快捷输入
快捷候选来源开哪些候选来源,见下
候选窗布局快捷输入期间候选窗横排还是竖排,退出后自动恢复
自由输入关闭 / 自动判断 / 始终字面输入,见下
; ' 作字面字符自由输入时这两个键不再选第 2 / 3 候选;数字键不受影响
小数保留位数计算结果最多保留的小数位数(0 表示取整)

触发键

可选:`;',./\[]。只收符号键——字母键统一走码表方案配置的「z 键引导功能」

触发键冲突会实时提示

触发键可能与次选键、临时拼音 / 临时英文触发键冲突。设置工具会实时检测,在页面顶部以琥珀警告条提示。同一个键只能分配给一项功能。

快捷候选来源

关掉的来源不再产出候选。列表顺序即候选优先级,调整顺序需直接编辑配置文件的 members

来源内容
计算算式求值,如 1+2*35^2(1+2)/4
日期 / 年月12.25 → 今年 12 月 25 日;2026.3 → 2026 年 3 月
数字 / 金额中文数字、财务大写、千分位;算式结果也会转换
重复上次上屏仅在刚进入、尚未输入时出现,空格即再上屏一次
拼音跟随主拼音方案(全拼 / 双拼)
英文英文词库候选

前四类候选具体长什么样(日期用哪几种写法、金额带不带「整」)也可以改,见自定义候选格式

候选窗布局

三档,出厂为强制竖排——日期、算式结果这类候选是长文本,横排放不下。

选项含义
跟随全局外观设置里的候选窗排列——你改全局,本模式跟着改
强制竖排本模式期间恒定竖排,与全局无关
强制横排本模式期间恒定横排

「跟随全局」和「强制竖排」的区别只在全局本身就是竖排时才看得出来——前者会跟着你以后对全局的改动走,后者不会。

自由字面输入 0.114 新增

要在 ; 里原样打出 GetTestData()test_dataall-in-one12.5GB 这类内容,靠的不是某个切换键——快捷输入里几乎每个可打印键都已双重占用(数字键选词、标点顶屏退出、字母选词),挑不出真正空闲的键。

判据落在输入内容本身

一个字符若不在当前透镜的合法字符集内,它就不可能是编码,只能是字面内容。

此后一切可打印键都字面入缓冲,候选只有「你打的原文」一条。

透镜

透镜由缓冲内容推导,不是粘滞状态——退格删掉那个越界字符就自然回到原透镜,不需要退出键。

透镜何时进入合法字符
文本首字符是字母小写字母(数字键作选词,不入缓冲)
数字首字符是数字数字与算式运算符(含 -
自由出现越界字符全部可打印字符,一律字面

合法字符集按透镜划分而非取并集,- 的归属因此自然分裂:

  • ;1-5 —— 首字符是数字走数字透镜,- 在算式字符集内,仍是减法 → -4
  • ;all-in-one —— 首字符是字母走文本透镜,- 越界 → 转自由透镜,得到字面 all-in-one

自由透镜下不显示候选序号

该透镜下字母与数字都是字面输入,没有任何键能按序号选候选,画出序号等于骗你去按那个数字、结果把数字打进缓冲,故刻意不渲染。用 SpaceEnter 上屏。

自由输入不展开短语占位

自由输入的候选不走短语展开:打 $AA 就上屏 $AA。那是你逐键敲进去的字面内容,不是词库候选。

三个取值

取值行为
关闭越界字符按原有规则处理(标点仍顶屏出中文标点、- 仍翻页)
自动判断(默认)出现越界字符时自动转入自由透镜
始终字面输入恒在自由透镜。适合新建一个专做字面输入的实例

行为变更:自动判断下逗号不再顶屏

「自动判断」下,;nihao, 的逗号会字面入缓冲,不再顶屏上屏「你好,」。; 本就是为特殊内容而进的模式,要标点可以先按空格上屏再打。不接受这个取舍的话,把这一项设为「关闭」即恢复旧行为。

; ' 作字面字符

'; 默认是第 2 / 3 候选键,所以 rock'n'rolldon'tfor(;;) 这类内容原本打不出来——这两个键在选词分派那一步就被截走了,轮不到上面那条越界判据。越界判据只认得出「字符本身不可能是编码」的键(大写字母、多数符号),对功能键无能为力。

选词键与字面字符是同一批物理键的两种解释,无法两全,只能按「有没有等价替代」分配:

归属理由
; '字面(默认)选第 2 / 3 候选只是数字键 2 / 3 的别名,让位不损失能力
数字 19始终选词文本透镜唯一的选词通路,让位就一个选词键都不剩

关掉这一项即让 ; ' 恢复选词,此时 rock'n'roll 又打不出——这是取舍,不是缺陷。

已知限制:纯小写字母 + 数字打不出

数字键始终是选词键,故 utf8mp3x64 这类「纯小写字母 + 数字」的内容里,数字会去选候选。先打一个大写字母或符号切进自由透镜即可,例如 UTF8

右键调整候选顺序 0.116 新增

不想改配置文件的话,在候选上点右键就能调:

菜单项作用
置顶(同类型内)这一类的所有输入都把它排最前
上移 / 下移微调位置
隐藏此格式该写法不再出现在候选里
恢复默认把这一类恢复成出厂状态

「同类型内」是说:置顶只在日期、数字、计算各自这一类里生效。类与类之间谁先谁后由快捷候选来源members 顺序决定。

调完立即生效,不用重启。

调的是「这种格式」,不是这一次的结果

把「农历五月初五」排到最前,意思是以后所有日期都把农历排最前,不是只对 2026.6.19 这一次。这与候选调整(对某个编码下的某个词置顶)不是一回事。

隐藏之后只能整类恢复

被隐藏的格式不再出现在候选里,也就没法再右键点它。要恢复得用「恢复默认」,这会把该类的顺序调整一并清掉。

右键调整存在用户数据里,与下面的格式表文件互不干扰:你手写的 system.quick.toml 不会被程序改写,右键调整叠加在它之上。

自定义候选格式 0.116 新增

出厂的日期、数字、金额、计算候选是固定的几种写法。要按自己的习惯改——比如日期只留 2026.4.24 一种、千分位用空格、金额单位写「圆」——可以放一份自己的格式表。

这是高级特性,没有设置界面,改的是配置文件。不动它的话行为与从前完全一样。

怎么改

把程序目录里的 data\system.quick.toml 拷到用户配置目录,改完重启输入法服务

%APPDATA%\WindInput\system.quick.toml

你那份会整份生效,程序自带的那份不再参与。所以请在完整副本上改,而不是只写想改的那几条——没写进去的格式就不会出现了。

整份生效意味着不会自动获得新格式

以后版本给出厂表新增的格式,不会出现在你的副本里。想要的话,对照新版自带文件手动补。

一条格式长什么样

[[formats]]
id = 'date.cn'          # 标识,同 kind 内唯一
kind = 'date'           # 类型:date / year_month / number / calc
text = '$Y年$M月$D日'    # 模板
position = 1            # 同类内的顺序,升序

kind 决定这条格式在什么输入下生效,只能是这四种之一——它对应程序里的四个解析器,不能自创。

各类之间的先后不在这里改

position 只排同一类内部的顺序。日期、计算、数字这几类之间谁先谁后,由快捷候选来源members 顺序决定。

变量

类型输入示例可用变量
date12.252025.12.25$Y 2025、$YYYY 2025、$YY 25、$YC 二〇二五
$M 3、$MM 03、$MC
$D 5、$DD 05、$DC
农历见下节
year_month2025.12同上,无 $D 系列,不支持农历
number123.45$N 123.45、$THOU 1,234,567、$DIG 一二三
$CNL 一百二十三、$CNU 壹佰贰拾叁
$AMT 壹佰贰拾叁元肆角伍分
calc1+2*3$EXPR 1+2*3、$RESULT 7

$$ 表示字面的 $;变量后面紧跟字母时用 ${Y} 显式定界。

渲染结果为空的条目不会出现在候选里。例如 $AMT 在小数超过两位时没有角分写法,那一条候选就自动消失,不需要也无法在文件里写条件判断。

农历 0.116 新增

输入日期时,候选里默认带两条农历写法,排在公历五条之后:

;2026.6.19
  1. 2026年6月19日
  2. 二〇二六年六月十九日
  3. 2026-06-19
  4. 20260619
  5. 2026/06/19
  6. 农历五月初五
  7. 丙午年五月初五

这两条由格式表里的 date.lunardate.lunar_ganzhi 产生,可以照常改写、调序或删掉。可用变量(只有 date 类能用):

变量值(以 2026.6.19 为例)
$LMD五月初五
$LM / $LD五月 / 初五
$LY丙午(干支年)
$LZ马(生肖)
$LYN2026(农历年数字)
$LF端午节

闰月带「闰」字,如 农历闰四月初十

干支和生肖按农历年算,元旦前后与公历年差一年

农历年从正月初一开始。2026 年 1 月 1 日打出来是「乙巳年冬月十三」——还是蛇年,要到 2 月 17 日春节才转丙午马年。$LYN$Y 因此可能差 1。

支持 1900 年到 2100 年。超出这个范围,农历那两条候选自动消失,公历的照常。

$LF 只在传统节日当天有值(春节、元宵、龙抬头、端午、七夕、中元、中秋、重阳、腊八、小年、除夕),平常日子含 $LF 的那条候选不出现。所以可以写一条「只在节日才冒出来」的格式:

[[formats]]
id = 'date.festival'
kind = 'date'
text = '$LMD $LF'      # 平常日子这条不出现
position = 8

农历变量在短语里同样可用,取的是当天的农历。例如给短语 nl农历$LMD,打 nl 就得到今天的农历日期。

函数写法

变量表达不了的调整——换千分位分隔符、改货币单位、去掉「整」、补零到指定位数——用函数写法:

text = "{amt(unit='圆', zheng='false')}"    # 壹佰贰拾叁圆
text = "{thou(sep=' ')}"                    # 1 234 567
text = "{thou(group=4)}"                    # 123,4567
text = "{year()}年{month(pad=2)}月{day(pad=2)}日"   # 2025年06月05日

不带参数时与对应的变量完全相同{month()} 就是 $M{month(pad=2)} 就是 $MM。只为想改的那一处写参数即可。

函数参数说明
year() month() day()pad= 补零位数
cn='true' 出中文数字
$Y $M $D 系列
raw()所输数字原样
cn()upper='true' 出大写中文数字
dig()逐位中文
thou()sep= 分隔符
group= 每组位数
千分位
amt()unit= 货币单位
zheng='false' 去掉「整」
大写金额
lunar()part= 取哪一段农历,默认 md(五月初五)
另有 month day ganzhi zodiac year festival full
expr() result()算式与结果

开关类参数要加引号

cn='true' 而不是 cn=true——不加引号会被当成函数调用。参数值写错(如 zheng='nope')时这条候选不会出现,启动日志里有提示。

一条模板里不能混用两种写法,${Y}年{month()}月 不合法,要么全用变量、要么全用函数。函数写法里还可以套用命令栏的文本函数,例如 {concat('¥', thou())}

写错了会怎样

程序不会因为这个文件出错而打不出字:

情况结果
文件不存在 / 整份语法错误回落出厂格式,行为与没改过一样
某一条写错(变量名、类型名不认识)只丢那一条,其余照常
函数名或参数写错那一条候选不出现,启动日志里有提示
农历算不出(超出 1900–2100、日期不存在)农历那几条不出现,公历的照常

不用进快捷输入也能用的

日期、时间、UUID、时间戳、各类特殊符号有另一条更省事的路——直接在中文输入状态下打编码,不必先按 ;

date → 2026年4月24日 / 2026-04-24 / …
time → 14:30:00 / 14:30 / …
uuid → 550e8400-e29b-41d4-a716-446655440000
zzbd → 、。·…""【】
zzys → ①②③④⑤

这些是系统短语,完整清单(含 zz 系列符号总表与自定义短语可用的日期时间变量)见快捷短语

Ctrl / Alt 组合键不会被吞 0.114 新增

在快捷输入、临时英文、临时拼音、网址输入、引导键特殊模式这五种模式里,带 Ctrl / Alt 的按键按主输入路径的语义处理:

  • 缓冲区非空 —— 放弃整段待输入内容并隐藏候选窗,该按键交还宿主
  • 缓冲区为空 —— 直接透传给宿主

0.113 及以前 Ctrl + E 这类组合键会被当成字面 e 插进缓冲区,宿主程序收不到。

想让某个组合键在候选窗显示期间生效

把它配成候选窗快捷键(置顶、删除候选等)即可——那一层在上述守卫之前分派,天然优先,且五种模式一次接通。见按键设置

本页目录