Native & OS 输入法管理包『sis』使用交流

应该是的,紫薯布丁

macism 那个帖子里面的 patch 就是从 emacs-mac 那里经过大佬弄出来的。

我用的 emacs 官网推荐的 emacs-app,好像跟 emacs-mac 不一样,没打那个 patch

是这样的,我之前也用的 brew,也装了 sis 就没这个问题,这次是自己编译的 macsim,把它放到 ~/.local/bin/ 下的,在加载 sis 之后才把它加入 exec-path 里的,就出现了这个问题。因为 sis 也没啥报错,一开始就没定位到是这个问题。

我昨天更新了 sis,结果报这个错:

Error (use-package): sis/:config: Wrong type argument: symbolp, '+org/insert-item-below

我现在把 sis-context-triggers 设置成 nil 来规避这个错误。

瞅一眼你 sis 的配置?

可能是你的配置问题。如果是用github上的最新版本,一定要更新到最新的commit cee7e94

我的配置很简单:

(use-package sis
  :config
  (setq sis-context-triggers nil)
  (add-to-list 'sis-prefix-override-keys "M-s")
  (add-to-list 'sis-prefix-override-keys "M-g")
  (when IS-MAC
    (sis-ism-lazyman-config
     "com.apple.keylayout.ABC"
     "com.apple.inputmethod.SCIM.Shuangpin"))
  (sis-global-inline-mode t)
  (sis-global-respect-mode t)
  (sis-global-context-mode t))

之前能用,用 package-upgrade-all 更新后,就报这个错误,我对了下更新后的包,应该就是 github 上的最新版。

我这边启用 sis-global-context-mode 的话确实也是会出来和你一样的问题。(我平时不用这个 mode) 建议直接到 github 上给作者报个 issue。

多谢,我看 sis 的作者也会经常看这个帖子,如果他没反馈,我再去 github 上提吧

你那边的配置没有改,只是升级之后出现的,是吧。

我瞧瞧,这几天fix一下。

我也开启了sis-global-context-mode,但是没有啥问题

我知道原因了。。。。fixing。。。

我一直没太理解 sis-global-context-mode,这两天刚好因为这个错误简单浏览了一下代码,是不是通过 sis-context-hooks 和 sis-context-triggers 这两个变量来触发上下文检查进行输入法切换。看 github 上的 README 描述得有些迷糊。

已经fix了。等待melpa库更新吧。

就是这样的。

  • hooks是别的package里面提供了某个hook,sis把自己挂上去
  • trigger的话,是sis挂在用户执行的某个命令函数上。

多谢解答,那我现在应该用不上 sis-global-context-mode 。我测试了一下,之前的问题 ok 了。 但又出现了一个其他问题。我目前配置中没用 context 模式,然后我启动 emacs,一切 ok,执行 M-x sis-context-mode 也 ok 显示启动正常。但我再次执行 M-x sis-context-mode 来去激活时报如下错误:

Wrong type argument: stringp, sis--context-trigger-advice-+org/insert-item-below

哇,上次commit带来这么多问题。。。
我来fix

context-mode是根据上下文自动切输入法。
比如你当前光标在两个汉字中间,
被hook或者用户的trigger激活,
就自动切到中文输入法。

非常感谢带来这么好用的软件,还这么及时的修复 bug,自己刚学 emacs 不久,不然的话就能帮着修改问题了。

粗略fix了。 但是只保证了global mode正常工作, buffer-local mode要好好厘清才能正常工作。