Rime 输入方案启用中英文状态切换

pimgeek2025年03月23日 21:32

延续上一则笔记 - Rime 输入方案启用自定义标点

在极简 Rime 输入方案配置文件 mvp.schema.yaml 的基础上增加一项新功能:第 1 次按下键盘左侧的 Shift 按键时,切换到英文半角标点输入模式;第 2 次按下 Shift 时,切换回中文全角标点输入模式。

# Rime schema settings
# encoding: utf-8

schema:
  schema_id: mvp
  name: 最小可行方案
  author: pimgeek
  version: "0.0.1"
  description: |
    最小可行自定义输入方案 (逐步迭代)

engine:
  processors:
    # <ascii_composer> 用于配合实现中英输入模式切换
    # ascii_composer 配置项必须先于 punctuator 
    # 否则将无法正常输入英文半角标点符号
    - ascii_composer
    
    # <punctuator> 用于设置标点符号
    # 它与以下 3 个配置项相互依赖
    # segmentors/punct_segmentor
    # translators/punct_translator
    # punctuator/half_shape { commit ... }
    - punctuator         # 左侧的 - 和空格必须保留

    # <key_binder> 用于设置键盘快捷键
    # 与下列配置项相互依赖:
    # key_binder/bindings { when ... accept ... select }
    - key_binder

  segmentors:
    # <punct_segmentor> 用于识别和标记 , . 等标点符号的输入编码
    # 它与以下 3 个配置项相互依赖
    # processors/punctuator
    # translators/punct_translator
    # punctuator/half_shape { commit ... }
    - punct_segmentor    # 左侧的 - 和空格必须保留

  translators:
    # <punct_translator> 用于把代表标点符号的输入码转换为最终的标点符号
    # 它与以下 3 个配置项相互依赖
    # processors/punctuator
    # segmentors/punct_segmentor
    # punctuator/half_shape { commit ... }
    - punct_translator   # 左侧的 - 和空格必须保留

# <ascii_composer> 用于配合实现中英输入模式切换
# 它与 processors/ascii_composer 同名但“层级”更高,需仔细分辨
# 它与以下 1 个配置项相互依赖
# processors/ascii_composer
ascii_composer:
  switch_key:
    # 下列配置项表示:按下左侧 Shift 提交已上屏的输入编码
    Shift_L: commit_code

# <punctuator> 用于列举需要自动转换的标点符号列表
# 它与 processor/punctuator 同名但“层级”更高,需仔细分辨
# 它与以下 3 个配置项相互依赖
# processors/punctuator
# segmentors/punct_segmentor
# translators/punct_translator
punctuator:
  half_shape:
    ',' : { commit: ',' }
    '.' : { commit: '。' }

# <key_binder> 用于设置键盘快捷键
# 它与 processors/key_binder 同名但“层级”更高,需仔细分辨
# 它与以下 1 个配置项相互依赖
# processors/key_binder
key_binder:
  bindings:
    # 下列配置项表示:按下左侧 Shift 按键可在中英文输入模式间来回切换
    - { when: always, accept: Shift_L, toggle: ascii_mode }



被 1 条笔记引用 (Trackback)


  • 被下列条目引用

  • 详解 Rime 输入方案配置文件中的 engine 部分

    在极简 Rime 输入方案配置文件 mvp.schema.yaml 的基础上增加注释,重点说明 engine/processors, engine/segmentors, engine/translators 等配置项的名称及其具体功效。

    # Rime schema settings
    # encoding: utf-8
    
    # schema 类配置项,主要是一些描述性信息
    # 包括本输入方案的唯一身份 id,中文名称,简介文字,作者,版本,简介文字等
    schema:
      schema_id: mvp
      name: 最小可行方案
      author: pimgeek
      version: "0.0.1"
      description: |
        最小可行自定义输入方案 (逐步迭代)
    
    # engine 类配置项,包括 3 步处理流程 (靠上的步骤优先处理)
    # 1 是 processors,2 是 segmentors,3 是 translators
    # 分别代表按键操作识别,输入编码分段和标记,把编码转换为最终上屏内容
    engine:
      # processors 类配置项,负责识别各种键盘按键操作
      processors:
        # <ascii_composer> 用于配合实现中英输入模式切换
        # ascii_composer 配置项必须先于 punctuator 
        # 否则将无法正常输入英文半角标点符号
        - ascii_composer
    
        # <punctuator> 用于设置标点符号
        # 它与以下 3 个配置项相互依赖
        # segmentors/punct_segmentor
        # translators/punct_translator
        # punctuator/half_shape { commit ... }
        - punctuator         # 左侧的 - 和空格必须保留
    
        # <key_binder> 用于设置键盘快捷键
        # 与下列配置项相互依赖:
        # key_binder/bindings { when ... accept ... select }
        - key_binder
    
      # segmentors 类配置项,负责给输入编码序列做分段和标记
      segmentors:
        # <punct_segmentor> 用于识别和标记 , . 等标点符号的输入编码
        # 它与以下 3 个配置项相互依赖
        # processors/punctuator
        # translators/punct_translator
        # punctuator/half_shape { commit ... }
        - punct_segmentor    # 左侧的 - 和空格必须保留
    
      # translators 类配置项,负责把编码转换为中文字词或标点符号
      translators:
        # <punct_translator> 用于把代表标点符号的输入码转换为最终的标点符号
        # 它与以下 3 个配置项相互依赖
        # processors/punctuator
        # segmentors/punct_segmentor
        # punctuator/half_shape { commit ... }
        - punct_translator   # 左侧的 - 和空格必须保留
    
    # <ascii_composer> 用于配合实现中英输入模式切换
    # 它与 processors/ascii_composer 同名但“层级”更高,需仔细分辨
    # 它与以下 1 个配置项相互依赖
    # processors/ascii_composer
    ascii_composer:
      switch_key:
        # 下列配置项表示:按下左侧 Shift 提交已上屏的输入编码
        Shift_L: commit_code
    
    # <punctuator> 用于列举需要自动转换的标点符号列表
    # 它与 processor/punctuator 同名但“层级”更高,需仔细分辨
    # 它与以下 3 个配置项相互依赖
    # processors/punctuator
    # segmentors/punct_segmentor
    # translators/punct_translator
    punctuator:
      half_shape:
        ',' : { commit: ',' }
        '.' : { commit: '。' }
    
    # <key_binder> 用于设置键盘快捷键
    # 它与 processors/key_binder 同名但“层级”更高,需仔细分辨
    # 它与以下 1 个配置项相互依赖
    # processors/key_binder
    key_binder:
      bindings:
        # 下列配置项表示:按下左侧 Shift 按键可在中英文输入模式间来回切换
        - { when: always, accept: Shift_L, toggle: ascii_mode }


创建日期: 2025年01月26日 18:32