rime / home

Rime::Home is home to Rime users and developers
https://rime.im
4.29k stars 233 forks source link

如何设置单个key_binder在多选菜单中来回切换 #1183

Open fhfuih opened 1 year ago

fhfuih commented 1 year ago

我的使用场景如下:

  1. 需要在内地简化字(s)和香港繁体(hk)两种用字中转换【注意,不是opencc中的默认标准繁体用字(t)】
  2. 需要设置快捷键切换这两种用字模式

关于使用场景1,目前能找到的唯一解决方法是设置一个多选switch [1,2,3]

  engine/filters:
    - simplifier@zh_simp
    - simplifier@zh_hk
    - uniquifier
  switches/@2:
    options: [zh_simp, zh_hk]
    states:
      - 简
      - 港
    reset: 0
  zh_simp:
    option_name: zh_simp
    opencc_config: t2s.json
  zh_hk:
    option_name: zh_hk
    opencc_config: t2hk.json

因为switch没有设置name,所以该选单会被rime理解为多选菜单,而不是开/关菜单。

现在尝试配置使用场景2,我想使用Control+Shift+grave来回切换简和港。但是对于多选菜单,我只能配置形如

  key_binder/+:
    bindings:
      - accept: "Control+2"
        set_option: zh_simp
        when: always

  key_binder/+:
    bindings:
      - accept: "Control+2"
        set_option: zh_hk
        when: always

的用法[4]。

故有以下问题

  1. 现在这种配置下,我按Control+2没有效果(换成别的按键组合也没有效果。例如我配置为Control+2 set_option:zh_hk,在简体状态下按Control+2还是简体没有切换)。以上配置是否有误?
  2. 能否有一种配置,在第2步的时候为多选菜单配置单个快捷键,使其在选项间循环跳转?
  3. 或者,能否有一种配置,把第1步配置为开/关菜单?此时需要把“关”状态设置为opencc_config: t2hk.json。这样一来第二步可以在binding中配置toggle:来达到我的目的。

[1]: https://github.com/LEOYoon-Tsaw/Rime_collections/blob/master/Rime_description.md#開關 [2]: https://github.com/LEOYoon-Tsaw/Rime_collections/blob/master/Rime_description.md#五simplifier [3]: https://gist.github.com/lotem/397dd28fc35ea2fdaad0 [4]: https://github.com/LEOYoon-Tsaw/Rime_collections/blob/master/Rime_description.md#八其它

fhfuih commented 1 year ago

我的完全设定档如下

patch:
  # easy_en 英文联想配置
  easy_en/enable_sentence: false
  # 快捷键
  key_binder/+:
    bindings:
      - accept: "Control+2"
        set_option: zh_hk
        when: always
  # 标点联想
  punctuator/+:
    import_preset: symbols # 在双拼中打开斜杠符号输入模式
    half_shape:
      "[": "["
      "]": "]"
      "{":
        - "「"
        - "{"
        - "【"
        - "〔"
        - "『"
        - "〖"
        - "〘"
        - "〚"
      "}":
        - "」"
        - "}"
        - "】"
        - "〕"
        - "』"
        - "〗"
        - "〙"
        - "〛"
      "#": "#"
      "`": "`"
      "~": "~"
  # 符号输入模式的触发条件(斜杠开头的代码)
  recognizer/patterns/=:
      # 删掉默认的反查功能
      punct: "^/([0-9]0?|[A-Za-z]+)$"
  # 简繁只开启简体字+香港繁体
  engine/filters:
    - simplifier@zh_simp
    - simplifier@zh_hk
    - uniquifier
  switches/@2:
    # name: simplification
    options: [zh_simp, zh_hk]
    states:
      - 简体字
      - 香港正體
    reset: 0
  zh_simp:
    option_name: zh_simp
    opencc_config: t2s.json
  zh_hk:
    option_name: zh_hk
    opencc_config: t2hk.json
__patch:
  # Rx: emoji:customize:schema=double_pinyin_flypy {
  - patch/+:
      __include: emoji_suggestion:/patch
  # }
  # Rx: BlindingDark/rime-easy-en:customize:schema=double_pinyin_flypy {
  - patch/+:
      __include: easy_en:/patch
# }