输入行为配置
input 域全部配置项——标点、智能符号、自动配对、临时英文/拼音、网址、简繁、命令栏
[input] 域涵盖输入行为的方方面面:全局按键语义(回车 / 空格 / 小键盘 / 候选过滤)、启动默认状态、标点与智能符号、自动配对、临时英文 / 临时拼音、网址输入、简入繁出、命令栏与短语前缀。这里的配置与具体方案无关,对所有方案统一生效。
默认值来源
本页默认值以系统预置 data/config.toml 的 [input] 段为准。未写进预置文件的字段(如 top_commit_mode、temp_pinyin.hotkey),默认值取自程序内置代码默认,已在对应行说明。
全局输入行为
顶层四个按键语义键 + 顶码上屏策略。
[input]
filter_mode = "smart" # 候选过滤模式
enter_behavior = "commit" # 有编码时回车的行为
space_on_empty_behavior = "commit" # 有编码但无候选时空格的行为
numpad_behavior = "direct" # 小键盘按键语义
# top_commit_mode = "direct_commit" # 内部/实验项,见下方 Callout| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
filter_mode | 枚举 | gb18030 / general / smart | "smart" | 候选过滤模式:gb18030 = 不过滤(全集);general = 只保留常用词;smart = 智能过滤(同一编码下存在常用词时过滤掉非常用词) |
enter_behavior | 枚举 | commit / clear | "commit" | 有编码时按回车:commit = 上屏「已转换前缀 + 剩余原码」;clear = 清空编码、不上屏 |
space_on_empty_behavior | 枚举 | commit / clear | "commit" | 有编码但当前无候选时按空格:commit = 上屏「已转换前缀 + 剩余拼音原码」;clear = 清空编码 |
numpad_behavior | 枚举 | direct / follow_main | "direct" | 小键盘按键语义:direct = 小键盘数字键直接输出数字(不当选词 / 翻页键);follow_main = 小键盘键重写为主键盘等价键,跟随主键盘语义 |
top_commit_mode | 枚举 | pre_confirm / direct_commit | "direct_commit" | 顶码上屏时「已确认文字」如何落到宿主。内部 / 实验项,见下方 Callout |
智能档不再「打得越全反而越不出」 (0.114)
smart 档按「同一来源 + 同一编码」分组,组内有常用词就滤掉非常用词。0.113 及以前,同一个字在不同长度的输入下会落进不同的分组——五笔的「桜」(sivg)打 siv 能出、打全 sivg 反而消失,因为打 siv 时同码位的常用字「档」被上游的去重整条丢掉了,「桜」成了孤儿码而被放行。
0.114 让候选记住自己被去重时占用过的全部码位,合并到幸存者身上,过滤时一并遮蔽。同一个字打得越全,出的候选只会更少或不变,不会反而多出来。
跨来源的码位不合并:码表码与拼音码不同域,混输下 wang 两边都合法,合并会给码表凭空造出「该码位有常用字」的假事实、误滤同码的码表生僻字。
内部项:top_commit_mode
input.top_commit_mode 不在系统预置 config.toml 中,也不在设置工具开放,属内部 / 实验字段,仅可手改。direct_commit(默认)在顶码时真提交、靠隔一拍消息泵躲开 diff 合并,无下划线歧义、WPS 不清空;pre_confirm 留在 TSF 组合态延迟提交,但部分宿主会整段画下划线、WPS 智能标点顶屏会清空。除非排查特定宿主兼容问题,否则无需改动。
启动默认状态(input.default)
程序启动 / 输入法激活时的初始中英、全半角、标点状态。
[input.default]
remember_last_state = false # 记忆前次状态
chinese_mode = true # 默认中文输入
full_width = false # 默认全角
chinese_punct = true # 默认中文标点
state_scope = "global" # 中英状态作用域| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
remember_last_state | 布尔 | — | false | true = 启动 / 激活时恢复上次的中英 / 全半角 / 标点;false = 每次激活重置为下方默认值 |
chinese_mode | 布尔 | — | true | 默认进入中文输入模式 |
full_width | 布尔 | — | false | 默认全角 |
chinese_punct | 布尔 | — | true | 默认中文标点 |
state_scope | 枚举 | global / app | "global" | 中英状态作用域:global = 所有应用共享(默认);app = 每个应用各自记忆中英文(会话级) |
标点(input.punct)
标点随中英切换、数字后智能英文标点、四态自定义映射。
[input.punct]
follow_mode = false # 标点随中英模式切换
smart_after_digit = true # 数字后标点智能直出英文
smart_list = ".,:" # 参与「数字后智能英文标点」的标点集合
custom_enabled = false # 自定义标点映射总开关
# custom_mappings 为映射表,设置页表格编辑,此处不内联| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
follow_mode | 布尔 | — | false | 标点随中英模式切换(中文模式出中文标点,英文模式出英文标点) |
smart_after_digit | 布尔 | — | true | 数字后的标点智能直出英文 |
smart_list | 字符串 | — | ".,:" | 参与「数字后智能英文标点」的标点集合 |
custom_enabled | 布尔 | — | false | 自定义标点映射总开关;关闭时全部走内置默认转换 |
custom_mappings | 映射表 | — | {}(空表) | 四态标点自定义映射:key = 源字符(引号用 "1/"2/'1/'2 区分左右),value = [中文半角, 英文全角, 中文全角, 英文半角]。默认空表,在设置页表格编辑 |
智能符号(input.symbol)
同一标点在时限内连按两次,将前一个删改 / 替换为另一种形态。三个总开关互相独立,各管一种上下文,都默认关。
[input.symbol]
smart_mode = false # 中文标点状态:连按 → 换英文
smart_timeout_ms = 500 # 连按判定时限(毫秒)
smart_chars = "。,?!:;、~¥·……——" # 参与转换的中文标点集合
smart_method = "delete_replace" # 替换方案
english_punct_mode = false # 中文输入 + 标点切英文:连按 → 换中文
english_mode = false # 英文输入模式:连按 → 换中文
english_chars = ".,?!:;" # 上面两个英文场景共用的源字符集合| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
smart_mode | 布尔 | — | false | 中文标点状态下的智能符号总开关(连按 → 换英文;数字后智能标点场景方向相反) |
smart_timeout_ms | 整数 | — | 500 | 连按两次的判定时限(毫秒) |
smart_chars | 字符串 | — | "。,?!:;、~¥·……——" | 参与智能符号转换的中文标点集合(子串包含匹配,含成对 / 多字符标点) |
smart_method | 枚举 | delete_replace / hold_composition | "delete_replace" | 替换方案:delete_replace = press1 直接提交中文符号、press2 删改,所见即所得、体感更好,但依赖对宿主做删改(部分 Chromium 应用光标偏移);hold_composition = press1 开启 TSF 组合态展示中文符号、press2 替换提交英文、超时后自动提交中文,全程不删改,兼容性更好 |
english_punct_mode | 布尔 | — | false | 中文输入模式 + 标点切到英文时的智能符号(连按 → 换中文)。用于「用英文标点写中文、偶尔要个中文句号」 |
english_mode | 布尔 | — | false | 英文输入模式下的智能符号(连按 → 换中文) |
english_chars | 字符串 | — | ".,?!:;" | 上面两个英文场景共用的源字符集合。存按键本身的 ASCII 标点(. 而非 。),与存中文产物的 smart_chars 不同 |
英文态智能符号 0.113 新增
english_punct_mode 与 english_mode 是 0.113 新增的两个开关,方向与 smart_mode 相反——连按英文标点换成中文的。拆成两个而不是一个,是因为场景不同:前者是「正文是中文、标点用英文,偶尔要个中文句号」,后者是「正在打英文」。多数人只需要前者,英文态保持纯净。
english_mode 的影响面更大
开启 english_mode 后,输入法会把 english_chars 里的键接管(原本英文半角下这些键直接透传给应用),不接管就到不了引擎。因此它默认关闭。
english_chars 里不建议放配对符((、[、{、"、' 等):英文模式下这些键被接管后配对改由引擎处理,而输入法 DLL 的跳出栈是空的,Tab 跳出会失效。
临时英文(input.temp_english)
Shift + 字母或触发键进入临时英文缓冲,输完自动上屏。
[input.temp_english]
enabled = true # 临时英文总开关
show_candidates = true # 显示英文候选
case_variants = true # 生成大小写变形候选
shift_behavior = "temp_english" # Shift 键行为
trigger_keys = [] # 额外触发键(符号键进入临英)
allow_symbols = false # 临英缓冲内允许符号
space_as_input = false # 空格作为输入字符而非上屏
candidate_layout = "follow" # 候选窗布局(见本页「模式级候选布局」)| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
enabled | 布尔 | — | true | 临时英文总开关 |
show_candidates | 布尔 | — | true | 显示英文候选 |
case_variants | 布尔 | — | true | 是否在候选里补出全小写/首字母大写/全大写三种形态。它们各占一个候选位,只需要词库补全时可关闭 |
shift_behavior | 枚举 | temp_english / direct_commit | "temp_english" | Shift + 字母的行为:temp_english = 进入临时英文缓冲;direct_commit = 直接上屏该英文 |
trigger_keys | 字符串数组 | — | [] | 额外触发键(符号键进入临时英文模式,类似临时拼音触发键);默认空,仅 Shift + 字母触发 |
allow_symbols | 布尔 | — | false | 临英缓冲内是否允许符号字符 |
space_as_input | 布尔 | — | false | 空格是否作为输入字符(而非触发上屏) |
candidate_layout | 枚举 | follow / vertical / horizontal | "follow" | 临英期间的候选窗排列方向,见模式级候选布局。英文候选一行放得下,全局竖排时常设 horizontal |
大写锁定(input.capslock)
[input.capslock]
cancel_on_mode_switch = false # 中英模式切换时取消大写锁定| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
cancel_on_mode_switch | 布尔 | — | false | 中英模式切换时是否同时取消 CapsLock 大写锁定状态 |
临时拼音(input.temp_pinyin)
码表方案下临时切到拼音反查。全局唯一。
[input.temp_pinyin]
enabled = true # 临时拼音总开关
trigger_keys = ["backtick"] # 引导键(默认反引号)
candidate_layout = "follow" # 候选窗布局(见本页「模式级候选布局」)
# hotkey = "" # 专用直达热键,预置文件未写,默认空(不注册)| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
enabled | 布尔 | — | true | 临时拼音总开关 |
trigger_keys | 字符串数组 | — | ["backtick"] | 引导键(如 backtick / z / semicolon),默认反引号 |
hotkey | 字符串 | — | "" | 专用直达热键(如 "ctrl+shift+p",空串 = 不注册);与 trigger_keys 引导键共存,热键进入时组合区不写引导符。预置文件未写,默认空 |
candidate_layout | 枚举 | follow / vertical / horizontal | "follow" | 临拼期间的候选窗排列方向,见模式级候选布局 |
模式级候选布局
临时拼音、临时英文、网址输入、快捷输入、引导键特殊模式、快捷加词,各有一个同名的 candidate_layout,语义完全一致:
| 取值 | 含义 |
|---|---|
follow | 跟随全局 ui.candidate.layout——你改全局,本模式跟着改 |
vertical | 进入本模式期间强制竖排,退出自动恢复 |
horizontal | 进入本模式期间强制横排,退出自动恢复 |
它不是布尔开关:follow 与 vertical 的区别只在全局本身是竖排时才显现——前者跟着全局变,后者恒定竖排。也正因如此,才能表达「全局竖排、但临时英文横排」这种组合(英文候选一行放得下,竖排反而占屏)。
各模式的键位置不同:
| 模式 | 配置键 | 出厂默认 | 设置工具 |
|---|---|---|---|
| 临时拼音 | input.temp_pinyin.candidate_layout | follow | ✅ 下拉 |
| 临时英文 | input.temp_english.candidate_layout | follow | ✅ 下拉 |
| 快捷输入 | schema.mix_modes 中 quick_mix 的 candidate_layout | vertical | ✅ 下拉 |
| 网址输入 | input.url.candidate_layout | follow | 暂不显示(该模式当前不产出候选) |
| 特殊模式 | schema.special_modes[].candidate_layout | follow | 仅配置文件,见引导键特殊模式 |
| 快捷加词 | input.add_word.candidate_layout | vertical | 仅配置文件 |
快捷输入与特殊模式是每实例的——你配了多个融合模式或多个特殊模式时,每个各设各的,互不影响。
模式级注释模板
与上面的 candidate_layout 同一个思路:各模式可以覆盖候选注释的模板,
进入该模式期间生效,退出自动恢复。仅配置文件,无图形界面。
[input.temp_english]
comment_template_vertical = "${dict}" # 打英文时显示词典释义
comment_template_horizontal = "${dict}"
[input.temp_pinyin]
comment_template_vertical = "" # 临拼期间不显示注释
comment_template_horizontal = ""键名与全局的 ui.candidate.comment_template_vertical / _horizontal 一致,横竖各配各的,各自三态:
| 状态 | 含义 |
|---|---|
| 不写该键 | 跟随全局同方向的模板(默认) |
| 非空字符串 | 本模式期间改用它 |
空串 "" | 本模式期间不显示注释 |
「不写」与「写空串」是两回事——前者跟随全局,后者明确要求不显示。也因此这两个键
不会出现在出厂 data/config.toml 里:写进去就等于给了它一个值,而任何值都不等于「跟随」。
可用位置:input.temp_english、input.temp_pinyin、input.url、
schema.mix_modes[]、schema.special_modes[](后两者每实例独立)。
快捷加词面板不支持——它走独立绘制路径,本就不渲染注释。
典型用法见候选注释 · 分模式设置。
快捷加词(input.add_word)
按加词热键(默认 Ctrl+=)弹出的加词面板,目前只有布局一项可配。
[input.add_word]
candidate_layout = "vertical" # 加词面板的候选窗布局| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
candidate_layout | 枚举 | follow / vertical / horizontal | "vertical" | 加词面板期间的候选窗排列方向。默认竖排——面板是「标题行 + 词行」两行提示,竖排更易读 |
自动配对(input.auto_pair)
输入左括号自动补右括号,输右括号智能跳过。
[input.auto_pair]
chinese = false # 中文标点配对开关
english = false # 英文标点配对开关
chinese_pairs = ["()", "【】", "{}", "《》", "〈〉"] # 中文配对表
english_pairs = ["()", "[]", "{}", "<>"] # 英文配对表
jump_out_keys = ["right_symbol"] # 跳出配对的按键| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
chinese | 布尔 | — | false | 中文标点配对开关 |
english | 布尔 | — | false | 英文标点配对开关 |
chinese_pairs | 字符串数组 | — | ["()", "【】", "{}", "《》", "〈〉"] | 中文配对表,每项 2 字符 |
english_pairs | 字符串数组 | — | ["()", "[]", "{}", "<>"] | 英文配对表,每项 2 字符 |
jump_out_keys | 字符串数组 | right_symbol / tab / enter / space / escape | ["right_symbol"] | 跳出配对的按键,可多选。right_symbol = 右符号键本身(打 ) 跳出已插入的 ()),其余为键名。列表里没有就是没有,不做隐式补偿。对称配对(引号)永不参与右符号跳出,只能靠 tab / enter 跳出 |
网址输入(input.url)
正常输入下打出完整前缀(如 http / www.)即进入网址输入模式,模式内自由输入网址字符(不触发上屏),空格或回车上屏。
[input.url]
enabled = false # 网址模式总开关
prefixes = ["www.", "http", "https", "ftp."] # 触发前缀
candidate_layout = "follow" # 候选窗布局(当前无实际效果,见下)| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
enabled | 布尔 | — | false | 网址输入模式总开关 |
prefixes | 字符串数组 | — | ["www.", "http", "https", "ftp."] | 触发前缀(恰好匹配即进入网址模式) |
candidate_layout | 枚举 | follow / vertical / horizontal | "follow" | 见模式级候选布局。当前无实际效果——网址模式不产出候选,候选窗不出现,故设置工具里也不显示这一项 |
简入繁出(input.s2t)
上屏时把简体候选转成繁体(简繁变换在上屏出口进行,引擎内部始终按简体处理)。
[input.s2t]
enabled = false # 简入繁出总开关
variant = "s2t" # 繁体变体| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
enabled | 布尔 | — | false | 简入繁出总开关 |
variant | 枚举 | s2t / s2tw / s2twp / s2hk | "s2t" | 繁体变体:s2t = 标准繁体;s2tw = 台湾正体;s2twp = 台湾正体 + 常用词转换;s2hk = 香港繁体。另接受别名 tw/taiwan、twp、hk/hongkong;未识别值回退 s2t |
命令栏(input.cmdbar)
$CC / $SS / $AA 等命令候选(带副作用的命令直接从候选框执行)。
[input.cmdbar]
enabled = false # 命令栏总开关
candidate_prefix = "⚡" # 命令候选前缀标注| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
enabled | 布尔 | — | false | 命令栏总开关 |
candidate_prefix | 字符串 | — | "⚡" | 副作用命令候选在候选框渲染时的前缀标注 |
短语(input.phrase)
短语前缀列举(含命令栏 $CC/$SS/$AA)。
[input.phrase]
min_prefix = 2 # 触发前缀导航列举的最小输入长度| 键 | 类型 | 可选值 | 默认 | 说明 |
|---|---|---|---|---|
min_prefix | 整数 | — | 2 | 触发前缀导航列举的最小输入长度 |