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

:+1: :+1: :+1

我在 sis–auto-refresh-timer-function 函数里加判断临时解决。。等大佬最终解

    ;; Force "*About GNU Emacs*" buffer to english
    (if (and (string= "*About GNU Emacs*" (buffer-name))
	     (not (string= "english" sis--current)))
	(progn
	  (sis-set-english)
	  ;; (message "hello sis-set-english %s" (buffer-name))
	  ))

打开About GNU Emacs是你的高频需求么?你还专门work around了?

报个bug。 如果打开 sis-global-respect-mode ,会和which-key 的分页c-h n 或者 c-h p 有冲突,造成无法分页。关闭sis-global-respect-mode,which-key 分页就正常了。刚下载了 github上 sis的最新代码试了一下,还是有这个现象。

现象见下面的帖子:

我这边已重现。看看~~

@chiron 找到原因了,会解决的。

@emacle about-emacs这个问题,是我迄今为止遇到的最迷惑的问题,还没有眉目。 :joy:

@goumao 作者有用 evil 的 leader key 吗?按下 M-SPC 后怎么自动切换成英文输入。

sis-prefix-override-keys 是用来干这个事的吗,“M-SPC" 加进去不起作用

@goumao 可能要像 fcitx 一样给用户选项自己加 prefix。话说 fcitx 怎么实现的,也这么多前缀相关按键的问题么😂,感觉你一直在处理各种 dirty case

就是这个,我加了,起作用的

(push "M-SPC" sis-prefix-override-keys)

现在就是啊~~,可以自定义。

我其实也读fcitx的相关代码,
当然还读了一些其他项目的代码。

fcitx跟sis相比,还是弱了很多的。

抱歉,没注意

首先感谢帮助。但是我用 (sis-get) 始终只能获得 nil ,到底应该怎么得到当前环境的名字呢?我用的是 macos,输入法分别是 ABC - extend 和 搜狗。

你如果是Emacs Mac Port,并在GUI模式运行,sis-get就能拿到当前的input source
否则,你需要安装macism,readme上面有。

当前中文输入法,然后执行 magit-file-dispatch 命令(默认绑定到 C-c M-g),输入法没有自动切换到英文。该怎么配置呢?

我瞧瞧~~~

这块我正在解决,
这个回复 是同样的问题。
不是普通的命令,是dispatch,这时候需要更好的处理。

@emacle @aqua0210

preserve-go-english-triggers 更名为 respect-go-english-triggers
preserve-restore-triggers 更名为respect-restore-triggers

@opsnull

现在再试试呢?
自动切英文应该没问题。

某些命令下,可能无法自动切回中文。
但那个是期望的行为,
比如magit查看同一文件的不同版本时,
之前buffer可能已经被关闭了
退出时重新打开的实际上是重新建立的buffer

现在可以自动切换到英文了。但如果 C-g quit 了这个 dispatch 命令(没有正常走完 dispatch 后续的流程),输入法没有切换回以前的中文。

magit-dispatch 命令(默认绑定到 C-x M-g)不能自动切换到英文。