如何在按下 Ctrl 或 Meta 键时,自动切回英文输入法?

一般在按下 Ctrl 或 Meta 键后,会进行英文命令的输入,这时如果还是中文输入法时,就会很烦人。

如何在按下 Ctrl 或 Meta 键时,自动切回英文输入法?并且接着 Ctrl 或 Meta 后面输入英文命令。 相当于在 Ctrl/Meta 键 和 接下来的命令输入中间,加了一个切回英文输入法的中间件。

比如

Meta -> (自动切回英文) -> x (此时会调出 Meta-x 的命令输入框)

可否用 defadvice 来做?由于刚入门,还不是很熟悉 lisp。

fcitx.el 就能满足你的需求,而且目前支持 Windows, macOS, Linux 的 fcitx

如果用的是 ibus 输入法,也有现成的解决方案:

https://www.emacswiki.org/emacs/IBusMode

如果我不想针对特定的输入法呢?只是单纯的对 Ctrl 和 Meta 键做 Hack,该怎么做呢?

你只要修改 fcitx.el 的后端就可以了。这个包本身是不针对输入法的。

针对修饰键来做的思路是不现实的,Emacs 识别不出单独的修饰键。只有按了 M-x Emacs 才接受得到按键信号。

其实你想要的是在 minibuffer 禁用输入法而已。

参考这个,你可以试下自带的quail的输入法,主要是你对一系列输入按键的处理

1 个赞

假如用 Emacs Mac port 的话: