[求助]使用Rime输入法(不是emacs-rime)时,emacs抽风的问题

最近折腾了一下用rime替代默认的微软输入法,体验良好,但在使用WSL+X410的emacs时碰到了奇怪的按键抽风问题:

首次发现这个问题是在emacs下截图的时候,使用系统默认截图按键Win+Shift+S时,屏幕会莫名上移; 之后发现的另一个问题是,Del键会删除光标后的所有内容。

command-log-mode帮助寻找问题,发现问题应该是这样:

  1. Win+Shift+S键会触发<prior>按键(也就是Page Up)多次

图片

  1. 如果真的按下键盘上的Page Up或者Page Down,则会无限触发相应的按键,直到我用EscC-g取消为止

图片

  1. Del键同理

图片

上述操作时,我的Rime都处于ascii mode下,理论上应该不会对Emacs造成影响才对;另外,输入法切到微软的英语(美国)状态下就不会触发相应的问题。

求解,逮不到问题的所在

贴一下default.custom.yaml:

patch:
  schema_list:
    - schema: luna_pinyin
  "ascii_composer/switch_key":
    Caps_lock: clear
    Control_L: noop
    Control_R: noop
    Shift_L: commit_code
    Shift_R: inline_ascii
  "menu/page_size": 7
  schema_list:
    - {schema: luna_pinyin}
  "switcher/hotkeys":
    - "Control+grave"
  key_binder:
    bindings:
    - {accept: "Control+p", send: Up, when: composing}
    - {accept: "Control+n", send: Down, when: composing}
    - {accept: "Control+b", send: Left, when: composing}
    - {accept: "Control+f", send: Right, when: composing}
    - {accept: "Control+a", send: Home, when: composing}
    - {accept: "Control+e", send: End, when: composing}
    - {accept: "Control+d", send: Delete, when: composing}  # 后删
    - {accept: "Control+k", send: "Shift+Delete", when: composing}  # 删除词条
    # - {accept: "Control+h", send: BackSpace, when: composing}
    - {accept: "Control+g", send: Escape, when: composing}
    # - {accept: "Control+bracketleft", send: Escape, when: composing}
    - {accept: "Alt+v", send: Page_Up, when: composing}
    - {accept: "Control+v", send: Page_Down, when: composing}
    # - {accept: ISO_Left_Tab, send: Page_Up, when: composing}
    # - {accept: "Shift+Tab", send: Page_Up, when: composing}
    # - {accept: Tab, send: Page_Down, when: composing}
    - {accept: minus, send: Page_Up, when: has_menu}
    - {accept: equal, send: Page_Down, when: has_menu}
    - {accept: comma, send: Page_Up, when: paging}
    - {accept: period, send: Page_Down, when: has_menu}
    # - {accept: "Control+Shift+1", select: .next, when: always}
    - {accept: "Control+Shift+2", toggle: ascii_mode, when: always}
    - {accept: "Control+Shift+3", toggle: full_shape, when: always}
    - {accept: "Control+Shift+4", toggle: simplification, when: always}
    - {accept: "Control+Shift+5", toggle: extended_charset, when: always}
    # - {accept: "Control+Shift+exclam", select: .next, when: always}
    - {accept: "Control+Shift+at", toggle: ascii_mode, when: always}
    - {accept: "Control+Shift+numbersign", toggle: full_shape, when: always}
    - {accept: "Control+Shift+dollar", toggle: simplification, when: always}
    - {accept: "Control+Shift+percent", toggle: extended_charset, when: always}
    # - {accept: "Shift+space", toggle: full_shape, when: always}
    - {accept: "Shift+space", toggle: noop, when: always} # 禁用全半角切换```
    - {accept: "Control+period", toggle: ascii_punct, when: always}

要在WSL用rime的话,还是直接上emacs-rime 吧。WSL这个关于输入法的坑很多人踩过了,貌似没好的解决方法,Windows 上的小狼毫很久没更新了,bug多。

不好意思没表达清楚,就其实我emacs下的输入用的就是emacs-rime,但是系统输入法不会影响到emacs里面,我是系统输入法下用的rime

就是Windows系统里面的Rime 在WSL 下使用有问题。要在WSL里面的非Emacs 程序下用中文还是用Windows系统自带的中文吧。
ps:不过我在WSL 下除了Emacs 其他地方不需要中文 。

懂惹,原来正好一脚踏进坑里面了orz