原生输入法切换:smart-input-source ,配合evil使用更佳。

刚才更新了Xcode到10.1,brew install macism的macism仍然不能正常运行,需要自己编译安装才能在我这边运行(应该是macOS 10.13.6版本太低?)

我更新了brew脚本。 现在 brew tap laishulu/macism && brew install macism 时, 会本地调用swiftc编译源码,不会发生binary的版本问题。

我更新了brew脚本。 现在 brew tap laishulu/macism && brew install macism 时, 会本地调用swiftc编译源码,不会发生binary的版本问题。

:+1: brew安装的macism能运行了~

windows 10 上可以用,的确很方便,以前一直要不停的切换输入法。 :+1:

有一个问题是,win10上微软输入法用im-select切换成中文输入法时是英文模式,而不是中文模式。目前没有找到解决的方法。

开启了smart-input-source-mode后输入中文,光标会推到初始位置再上屏,给人感觉有延迟。

截图中,开启模式后,光标会跳到c的前面,然后中文上屏;不开模式是直接上屏,光标没有跳转的现象。

image

linux和windows我都没有测试试用过, 我只是找了相关的工具,写了对应的配置。

linux有用户报告可以正常工作,不意外, 因为linux上的命令行切换工具比较成熟。

windows上的这个工具im-select, 我看关注的人很少,可能不够成熟, 而且windows上没找到替代品。

im-select切换成中文输入法时是英文模式

这里,你确认 smart-input-source-other-input-source 要设置对:

  • 把windows的输入法切到中文
  • 自己在命令行下执行 im-select 不带参数,这里记命令结果为OTHER_SOURCE
  • 把windows的输入法切到英文
  • 自己在命令行下执行 im-select OTHER_SOURCE,观察是否成功切换到中文
  • 如果成功, (setq smart-input-source-other-input-source "OTHER_SOURCE"

开不开模式的上屏行为不同,这点的确奇怪。 因为代码中没有涉及到这块,也没有做过移动光标的操作。 按理说,不应该有区别的。

可能是Windows平台的原因吧。能用已经不错了。:slight_smile:

装了第三方的输入法,rime。避开了微软输入法的中英文状态。

可否告知一下是怎么解决的?我也是windows的,im-select.exe不好使, 是只要换成rime就可以了吗?

我把中文输入法删了,用rime作中文输入法。

@Jousimies

是rime特别呢(就它兼容),还是微软拼音特别(就它不兼容)?

如果用搜狗拼音,会是什么情况?

这是什么原因啊,有没有用 spacemacs 的朋友出现一样的错误?

Error (use-package): smart-input-source/:config: Wrong type argument: symbolp, (text-mode-hook-identify)

windows 下要照这哥们配才行,感觉比较麻烦,im-select是切换键盘,不是切换同一键盘下的不同语言呀。

对于Windows用户,使用im-select时,需要注意以下(见README):

如果用别的输入法,比如小狼豪,这个要怎么改呢?

(setq smart-input-source-other-input-source
 	"com.sogou.inputmethod.sogou.pinyin")

不知道可不可以改?

@jacklisp

可以啊。

你装上这个package之后, 切换到相应的输入法,
在emacs里面执行: (smart-input-source--get-input-source)
就能得到当前的输入法 ID。

README 更新了,可以看到更详细的使用指南。

非常感谢,但windows下有点儿卡,尤其是inline english 的时候,不知为何, 不过还好了,可以忍受。

@jacklisp 谢谢反馈,据此我优化了这块,应该有特别特别大的提升。

另外,如果你不是evil用户的话,默认只开启 inline english region。 自己可根据需要调用 smart-input-source-do。 详见README

不错哈哈,更新后不卡了,非常感谢。 windows上的liberime一直编译不成功,不折腾了, 还是smart-input-source方便些。

无法从英文输入法切换到中文输入法。 Terminal 中 macism 切换没问题, 但在 Emacs 的 term 里 macism 无法从英文切换到中文,执行命令后只能看到菜单栏输入法图标闪烁一下。

(use-package smart-input-source
  :init
  (setq smart-input-source-english-input-source
        "com.apple.keylayout.ABC")
  (setq smart-input-source-other-input-source
        "com.apple.inputmethod.SCIM.ITABC")
  (setq smart-input-source-inline-english-face nil)
  (add-hook 'text-mode-hook #'smart-input-source-mode)
  (add-hook 'prog-mode-hook #'smart-input-source-mode))

补充:在 Security & Privacy / Accessibility 下移除 Terminal 后,情况跟 Emacs 里的 term 执行结果一样。但是我把 Emacs 添加进来后,结果没有改变,并不能像 Terminal 中一样正常切换。 有没什么办法解决?