Closed chenguangxing888 closed 2 months ago
同一个shift不是更方便吗? 我都是左shift 切换中英文
前面的不知道,ascii_mode 应该只有 switch key 没有 on 和 off 的 key binding。walkaroud 可能是搞两个方案,或者单独添加一个键盘,用系统快捷键去切换键盘。
英文单词加空格:研究下仓库自带的 en_spacer,改一下可以就实现了,下面的示例所有空格都是自动添加的:
walkaroud 可以是,key_binder放到ascii_composer之前,然后加两个key binding,不够理想的事情是,如果是composing状态的时候set_option: ascii_mode
会让正在输入的码还停留在那里,要自己回车一下上屏或者esc取消
patch:
'engine/processors/@before 0': key_binder
key_binder/bindings/+:
- { accept: Shift+Shift_R, set_option: ascii_mode, when: always}
- { accept: Shift+Shift_L, unset_option: ascii_mode, when: always}
更新: 如果想再细致一点避免上面提及的问题,可以写个lua插件的processor来处理commit code或者 clear code之类的
一个简易的demo https://github.com/fxliang/weasel_config/blob/main/lua/shift_ascii_enhanced.lua
https://github.com/mirtlecn/rime/blob/master/lua/en_spacer.lua
这个是自动添加空格的示例。使用参见库中的 cn.schema.yaml
受限于 rime 的 session 间不好互相通信,以及一些应用自行用输入来判断控件的做法,会有一些小问题。
正常切换中英文相当于开关,按一下是中文再按一下是英文。按一下能否切换到自己想要的状态很随机。能否提供一个单独的设置按键,例如左shift就是切换到英文,无论现在是中文还是英文,按了左shift后肯定是英文;同理,按了右shift肯定是中文。这样打字时就能完全控制中英文状态。
另外,在中文状态下,候选词里面也会有单词的提示,如果从候选词中选了单词能否在单词的前后加个空格?这样在切换到英文时可以少打两个空格。