大家有在 mac 上面使用 emacs-rime 的吗?是怎么和 mac 的输入法协调使用的?

我想试试看 emacs-rime,但是我需要给他单独配置一个激活的按键么?这样就感觉好像有点割裂,其他地方使用一个按键激活,emacs 里面使用另一个。有没有办法统一呢?我在 mac 使用 rime.

我用 better touch tool 设置了【在非 emacs/ghostty 中按 C-SPC 时切换输入法,否则传递 C-SPC 给应用】

这样就全局统一用 C-SPC 切换了

1 个赞

karabiner-elements 可以让你对相同的快捷键在 emacs 里和 emacs 外进行不同的映射,我是把 Shift 键映射了。同时限制在 emacs 里系统输入法强制切换到英文输入法,这点用 hammperspoon 和 karabiner-elements 都可以做到,也有其它类似的软件。

如果觉得用外部改键麻烦,也可以考虑 key-echo。

key-echo: 单按修饰键来触发Emacs命令 - Emacs-general - Emacs China

emacs中输入法不是有统一输入法切换键C-\吗?

是的 我也是用的 karabiner-elements , 它可以根据当前系统输入法的状态,当前激活的app 是什么 对键做映射 通 过 frontmost_application_unless frontmost_application_if input_source_if input_source_unless 等对当前状态进行判断 ,符合条件才执行 key 映射。

squirrel.custom.yaml:

patch:
  app_options:
    com.google.Chrome:
      # 規避 https://github.com/rime/squirrel/issues/435
      inline: true
    ru.keepcoder.Telegram:
      # 規避 https://github.com/rime/squirrel/issues/475
      inline: true
    org.gnu.Emacs:
      ascii_mode: true
      no_inline: true

mac下直接全局切鼠须管就好了吧。。。挺好使

在macOS上不用 emacs-rime,直接使用鼠须管体验和系统一致。 通过 sis 实现自动在 C-x 是切为英文。

我的解法比较暴力,我把系统的输入法切换快捷键设置为 C-\ (emacs 的快捷键),然后 emacs 里面的改为 shift ,我假想 emacs 始终开着输入法,只是通过 shift 切换 ascii 模式。

有点掩耳盗铃,但逻辑上能说通…… :joy:

我不是使用 mac 的,在 linux 上我是直接在启动方式里面修改 emacs 的环境变量禁用系统输入法,只在 emacs 中使用 emacs-rime。

env XMODIFIERS= GTK_IM_MODULE=none emacs