进阶配置文件

输入行为配置

input 域全部配置项——标点、智能符号、自动配对、临时英文/拼音、网址、简繁、命令栏

[input] 域涵盖输入行为的方方面面:全局按键语义(回车 / 空格 / 小键盘 / 候选过滤)、启动默认状态、标点与智能符号、自动配对、临时英文 / 临时拼音、网址输入、简入繁出、命令栏与短语前缀。这里的配置与具体方案无关,对所有方案统一生效。

默认值来源

本页默认值以系统预置 data/config.toml[input] 段为准。未写进预置文件的字段(如 top_commit_modetemp_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布尔falsetrue = 启动 / 激活时恢复上次的中英 / 全半角 / 标点;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_modeenglish_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进入本模式期间强制横排,退出自动恢复

它不是布尔开关:followvertical 的区别只在全局本身是竖排时才显现——前者跟着全局变,后者恒定竖排。也正因如此,才能表达「全局竖排、但临时英文横排」这种组合(英文候选一行放得下,竖排反而占屏)。

各模式的键位置不同:

模式配置键出厂默认设置工具
临时拼音input.temp_pinyin.candidate_layoutfollow✅ 下拉
临时英文input.temp_english.candidate_layoutfollow✅ 下拉
快捷输入schema.mix_modesquick_mixcandidate_layoutvertical✅ 下拉
网址输入input.url.candidate_layoutfollow暂不显示(该模式当前不产出候选)
特殊模式schema.special_modes[].candidate_layoutfollow仅配置文件,见引导键特殊模式
快捷加词input.add_word.candidate_layoutvertical仅配置文件

快捷输入与特殊模式是每实例的——你配了多个融合模式或多个特殊模式时,每个各设各的,互不影响。

模式级注释模板

与上面的 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_englishinput.temp_pinyininput.urlschema.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/taiwantwphk/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触发前缀导航列举的最小输入长度

相关阅读

本页目录