emacs 中如何避免切换系统中文输入法

在 emacs 中,自己的主力输入法是pyim. 但是在某些情况下,自己按错快捷键(shift), 导致切换到中文输入法,这个很蛋疼。这里的(shift)是自己系统默认的输入法切换快捷键。所以,如何设置在emacs中不进行中文输入法的切换。

如果你的想法是,当你在用 Emacs 时,希望按下 Shift 键(即你的系统指定的输入法切换键)后不去切换,我个人觉得在原理上不可行。

因为这个快捷键会首先被你的桌面系统捕获,在 Emacs 之外就已经发挥作用了。

除非你用的是类似 StumpWM 这种配置起来比较灵活的窗口管理器,可能可以想想办法。

有个不知道算 bug 还是 feature 的特性,LC_CTYPE 是英文时,GUI 的 Emacs 就用不了输入法。所以或许可以搞这么一个启动脚本:

#!/bin/sh

export LC_CTYPE="en_US.UTF-8"
/usr/bin/emacs "$@"

感觉不是很优雅,期待更好的解法。

这个可以,已经在 .profile 文件中修改了,可以自动避免输入中文输入法。不过这个偶尔还是有弊端。有时候还是需要系统的搜过之类的输入法。

直接在~/.profile文件中添加下面的配置代码就可以了: export LC_CTYPE=“en_US.UTF-8” 然后重启电脑,在打开emacs,就发现不能使用搜狗进行输入中文了。不过自己现在大部分的情况下在emacs中输入中文都是使用的pyim这个插件了,搜狗输入法基本上不会使用了。

不设置搜狗为默认输入法不就行了吗?

1 个赞

把切换输入法的快捷键改成不容易碰到的键不就行了。我是把shift用xcape输出C-\。

把切换输入法的键换成 Alt SPC

Linux 的话这样子:

GTK_IM_MODULE= QT_IM_MODULE= XMODIFIERS= emacs 

注意空格