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

确保升级到最新版。我几分钟之前都还有更新。

@goumao 还打算把emacs-rime作为input source吗?

你可以研究将 emacs 输入法框架作为输入源,这样更通用

遇到三个问题:

  1. inline-mode 下在中文之后进入 insert 模式输入 <spc>adfskdf<spc>sdf<esc>,会导致推出 insert 模式的时候切换为中文输入法,猜想可能是 evil-insert-state-exit-hookpost-command-hook 冲突。
  2. transient-state 中会输入字符,而不是执行字符相应的命令
  3. 重启 emacs 启动不了 global-respect-mode: Symbol's value as variable is void: global-respect-mode

打算,不过实现的优先级靠后一点点。

smart-input-source-global-respect-mode

最好用github版的,可能melpa版本还没有跟上来。

emacs-rime是在emacs输入法框架上的么?

重装 package 之后,2、3 已解决,1 仍存在

好的,一会我看看。
如果能重现的话,应该是很好修复的

我用的是最新版,但是还是没法自动切换回中文。回头我试试Mac是否能成功。

更新: 在Mac 上测试了也是一样。

另外再提个需求,切到readonly 的buffer 能否也默认切换为英文输入法?

我猜测应该是

实际上,第一次打开的buffer,默认都设成了英文输入法。

那看来我的是个例了,默认打开其他新buffer确实是英文的。但是比如我在中文状态下通过C-z,p 打开的英文翻译界面buffer却是变成了中文。最后要按q退出时就必须手动切换为英文。 C-x,b 切换到其他buffer也没问题。

你C-z配置了吗?默认只配置了C-x, C-c, C-h

否则的话,没有特例。
一定是哪个地方可以改进的。

配置了,能自动变成英文状态,激活C-z,p。但是这个命令激活的buffer是中文输入法,而原来的buffer变成了英文,回去后并没法恢复成中文。 Mac上测试行为也是一样

那就是bug了。。。。
追踪下去,应该能找到原因的。

我这里,
TUI的C-c后,能自动切换到英文,
但是GUI的还是中文,还在debug中。。。(已修正)

c-c的问题解决了
c-x 在 GUI和TUI中都不工作,
还没找到原因。

你们有这个情况么?

更新:找到原因了
更新:已修正。

@kangxiaoning

一直复现不了你提的这个问题。
事实上,按<esc>是不会退出inline english region的,
<esc>会退出evil insert mode,
完了那个时候 inline english region仍然是激活状态。
这样可以方便地在region里移动,继续编辑。

可否录屏?注意需要文字描述一下按键序列(不放在录屏里也可以)

@aqua0210 你能复现他提的这个issue么?

最新版已经实现了。
readme中的usage里面,有配置说明。