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

我再测试一下。
不会是精简代码精简出问题来了吧 :joy:

现在除了这一条,还有哪些问题呢?

我这边还有这条命令(push "C-z" smart-input-source-prefix-override-keys)不工作。按了C-z,再按其他单个按键,会被输入法捕获,需要再按一下回车。

但是如果直接去修改你的源码就可以正常工作,这是什么原因?

(defvar prefix-override-keys
  '("C-c" "C-x" "C-h" "C-z")
  "Prefix keys to be overrided.")

我的 M-x ,C-g 是正常的 我的 M-x 绑定 命令是 smex

  (add-to-list 'smart-input-source-preserve-save-triggers 'smex)
只是我很疑惑啊,
如果 `im-select` 这么小的工具,
怎么都要快过你手输入吧,

没办法 手速就是这么快 :stuck_out_tongue_winking_eye:

只不过这种情况也是偶尔会出现,我这会重现不了了,会不会跟系统哪儿的性能影响有关?

@aqua0210

M-x命令,有没有加到 save-triggers里面去?
如下这样的

这个M-x的问题解决了,加了 (add-to-list 'smart-input-source-preserve-save-triggers 'smex+) 就好了

不能用push!!!

This macro creates a new list !!!

要用 add-to-list!!!

哇 我这是歪打正着啊,原来用 push 的时候 会重复的添加, 我就改成 add-to-list 了

@BlindingDark

你这个是错的。push是生成一个新的list,而add-to-list是在已有的list中添加。

@aqua0210

@emacle @aqua0210

那现在记住输入法这块,还有其它问题么?

这个用 (add-to-list 'smart-input-source-prefix-override-keys "C-z" ) 也不行。

关于这块,暂时没发现问题 :+1:

没道理啊:

  1. add-to-list这段代码,必须要放在启用respect-mode之前。因为mode初始化要用到
  2. 你用add-to-list,emacs起来后,看下这个值是什么:(print smart-input-source-prefix-override-keys)

优秀!!!完美!!!

大佬辛苦了 :+1: :+1: :+1:

正解,确实是顺序问题,放前面就正常了。

http://g.mao.to/winsuper.exe

win键突破输入法的问题:

上面那个exe,你们跑一下,
然后开emacs,
看是不是能把win-i等键传到emacs里面,
变成 Ctrl+x, @ s i这种形式。
尤其是开中文输入法的情况下。

emacs里面要eval下列expression

(setq w32-pass-lwindow-to-system nil)
(setq w32-lwindow-modifier nil)
(w32-unregister-hot-key [s-])

还是不行,输入法捕获了i 。还需要设置elisp吧。

@aqua0210

对,我加上了

win+ i 直接执行了 系统命令,我记得还要绑定成super的语句吧? 你那边测试是Ok的吗?

我这边是OK的。

https://www.gnu.org/software/emacs/manual/html_node/emacs/Modifier-Keys.html#Modifier-Keys

官方emacs中已经默认Ctrl+x, @s绑定了到event-apply-super-modifier