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

感谢老哥回复,命令行运行 macism ,获得英文输入法为 com.apple.keylayout.ABC ,中文输入法为 com.apple.inputmethod.SCIM.ITABC ,问题解决!

sis 在dashboard下prefix 切换快捷键失效 例如 C-c活 C-x ,但是 esc不受影响,可以切换英文

请问各位在windows下体验如何?

本人 Win 10 Emacs 27 环境,emacs -q 仅使用 sis 的情况下,会有明显的卡顿(输入、光标移动等)不知如何调整,还请大佬指导。

配置是直接抄github页面的,没有使用use package

(add-to-list 'load-path "~/package/smart-input-source")
(require 'sis)
(sis-ism-lazyman-config "1033" "2052" 'im-select)

;; enable the /cursor color/ mode
(sis-global-cursor-color-mode t)
;; enable the /respect/ mode
(sis-global-respect-mode t)
;; enable the /context/ mode for all buffers
(sis-global-context-mode t)
;; enable the /inline english/ mode for all buffers
(sis-global-inline-mode t)

win10 Emacs 28 已经支持输入法在 Nomral 和 Insert 模式下自动切换!我觉得可以考虑升级下 Emacs!

1 个赞

sis 支持emacs 28 for windows使用系统api切换输入法,不需使用外部工具im-select, 那样就很丝滑了。

具体怎么支持的,有用户问过我,我给他解决过,但是现在找不到了。 :joy: :joy: :joy:

哦,找到了。

2 个赞

能自定义进入insert模式的时候是否是中文的判定条件吗

是的:

1 个赞

给大佬点个赞,看来我又要切回 sis 了 :smile:

和 magit 冲突的问题能否也修一下啊?

这部分能暴露出来吗,还是我要进行(setq sis-context-detectors)

本来就是暴露出来的啊。

sis--是内部使用的。
sis-是暴露给用户的。

你自己修改那个list就行了。
detector是按顺序执行的,
返回值不是nil的话,
就继续执行下一个detector

我今天升级了一下,内置了emacs 28 for windows使用系统api切换输入法,不需使用外部工具im-select。使用说明见readme的下面部分

但是我没有windows环境,所以并没有经过测试。

@dian-yu-luo 你轻车熟路,麻烦你也帮着测试一下。

你最后那个回复是OK的么?

不如你直接提一个PR过来

不用你提PR了。我刚才自己fix了。

如果你之前的回复是OK的话,
我最后提的那个fix应该可以。

升级到 emacs 29,体验非常好,感谢感谢~

多谢大佬,更新到最新版,现在 magit 中好用了 :+1:

你在emacs 29中用没问题么? 有个人提了个PR,
我不确定,
就一直悬在那儿。

刚升级好,用了十来分钟测试了下,暂时没有报这个错误。而且有个小惊喜,微软拼音输入法可以直接切换中英文(效果与按shift切换相同),不必再安装英文键盘。

Emacs版本是官网编译好的

截图_20220629002056

配置如下:

(add-to-list 'load-path "~/package/smart-input-source")
(require 'sis)

(setq sis-english-source nil)
(setq sis-other-source t)
(setq sis-do-get #'w32-get-ime-open-status)
(setq sis-do-set #'w32-set-ime-open-status)

;; enable the /cursor color/ mode
(sis-global-cursor-color-mode t)
;; enable the /respect/ mode
(sis-global-respect-mode t)
;; enable the /context/ mode for all buffers
(sis-global-context-mode t)
;; enable the /inline english/ mode for all buffers
(sis-global-inline-mode t)