(重新设计)中英文混打:OS输入法管理包 smart-input-source

有对应配置参考吗?

主要是就是在 meow 中根据 meow-insert-mode-hook 写了个进入和离开 insert-mode 的 hook,参考

然后加了

(add-to-list 'sis-context-hooks 'meow-entering-insert-mode-hook)
(add-hook meow-leaving-insert-mode-hook #'sis-set-english)

这样退出 insert-mode 就可以了。

另外从其他应用切换回来时,有时候也会带过来中文输入法。加了下面 focus 的时候触发

(defun lucius/meow-focus-change-function ()
    (if (frame-focus-state)
        (sis-set-english)
      (meow-insert-exit)))

  (add-function :after after-focus-change-function 'lucius/meow-focus-change-function)

好, 感谢。

after-focus-change-function 代码中处理了的。

但是有时候还是不行??

macOS系统里有个设置,不知道你有没有设:

系统设置》键盘》文字输入》输入法:编辑》自动切换到文稿的输入法。

很早以前就有么?

对,从最开始就有。

这个是GUI的focus处理, 1066行还有对terminal的focus的处理。

我想起来了,我的这个加在这里主要是为了离开 Emacs 的时候统一退出到 normal mode,至于为什么这么做,好像是以前从其他 app 回来会有点问题,我从 macsim 换成了 im-select,就不会有之前 macsim 切换输入法错误的问题了,有空我把这些 hack 去掉再试试。

一切都正常,除了在中文环境中输入不了中文,其他功能都可以,这一点怎么回事。 我的emacs现在使用的是emacs-mac 29版本的(Mac系统),之前在emacs plus 29上还是可以正常使用的。对应的配置基本上就是包说明文档中的默认配置。mac系统权限也给其权限了。 emacs

emacs-mac安装包从这里下载:Releases · railwaycat/homebrew-emacsmacport · GitHub 难道不支持?